您好,我在我建立的个人网站上有一个用于 seo 友好 url 的 mod_rewrite 脚本。该脚本运行良好,直到我注意到我无法访问我的管理文件夹,该文件夹是服务器上的真实目录。在我进行第一次更改之前,.htacsess 看起来像这样。
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule \.(css|jpe?g|gif|png|js)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1
RewriteRule ^(.*)/(.*)$ index.php?page=$1
所以我修改了脚本并添加了第二组这两个规则:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f
就在最后一条规则之前,所以它看起来像这样,没有前 4 行代码:
RewriteRule \.(css|jpe?g|gif|png|js)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)$ index.php?page=$1
一旦我这样做了,我就能够访问管理目录,但现在内容不会显示在第二级链接上,所以看起来最后一条规则被忽略了。
任何人都可以帮我看看我做错了什么,我会非常感激。
瑞恩鲍尔