我在Linux网络服务器上遇到问题。
基本上我有以下htaccess代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
工作正常,所以如果我去www.mydomain.com/blablablajrehkhsg,它会显示www.mydomain.com/index.php页面。
但它并不总是奏效。例如,在www.mydomain.com/specific-uri这样的特定URI上,我找不到404页面错误。
我甚至试图在我的htaccess中添加以下行
RewriteCond %{REQUEST_URI} ^/specific-uri
所以htaccess成为:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/specific-uri
RewriteRule . /index.php [L]
</IfModule>
但它仍然不会显示在index.php页面上。
请帮助,我不知道它可能是什么。
感谢
答案 0 :(得分:1)
基本上在root上有一个名为specific-uri.php的页面,该页面存在冲突。通常是:
RewriteCond %{REQUEST_FILENAME} !-f
条件会解决这个问题,但我认为apache在htaccess条件之前将/ specific-uri转换为特定的uri.php。
所以我补充说:
Options -MultiViews
在htaccess中的条件之前,我相信它告诉apache停止从uri中寻找类似的内容。
现在我可以看到/ specific-uri和具体的uri.php。