网站网址:将网页重定向到修改后的索引

时间:2012-09-08 23:02:39

标签: php apache .htaccess mod-rewrite

抱歉尴尬的头衔。这里有什么事情..如果我去:

  • URL.com/#我完全看到我的网站
  • URL.com/sagfasgfr#我完全看到我的网站(网址中的随机噪音)
  • URL.com/sagfas/udsudfsa#我得到我的索引,但没有我的CSS样式(url + sub中的随机噪音,噪音更大)

我配置了HTACCESS:

ErrorDocument 404 http://URL.com
ErrorDocument 403 http://URL.com
ErrorDocument 500 http://URL.com

<IfModule mod_rewrite.c>

 Options +FollowSymlinks

 RewriteEngine On

</IfModule>

我还想删除.php,但我的ReWrite规则无效。 请提供建议顺便提一下,此网站是注册表单,因此主页DIR以外的所有网页都不应该直接访问。

顺便说一句:BOX是APACHE,LINUX

删除.php的重写规则会导致内部服务器错误

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

2 个答案:

答案 0 :(得分:1)

为您的样式和其他网址使用绝对链接,而不是style.css使用http://www.yourdomain.com/path/to/style.css

对所有其他网址执行此操作。

如果您需要将其定向到主页,请在您的页面上添加:

if ($_SERVER['REQUEST_URI'] != 'correcturi') {
header("Location: correcturi", 301);
exit();
}

correcturi替换为您希望页面重定向到的URI。

更新:我明白你的观点。由于它不存在,您将页面“重定向”到url.com。但你必须记住。它不会重定向。它只是在同一个网址上显示该页面。这就是上面两段代码派上用场的地方。

答案 1 :(得分:0)

.htaccess中的行不进行任何重写,您需要为此添加一些RewriteRules。但是,由于您声称随机网址会将您发送到您的网站,我猜必须有另一个.htaccess(可能在父目录中)执行此处的实际重定向。

而且,css没有显示,因为你可能在样式表中使用了相对于webroot的路径,所以当你在子目录中这个路径不再有效时