0
您好,我有一个mod_rewrite脚本为我建立的个人网站上的友好的网址。这个脚本很棒,直到我注意到我无法理解我的admin文件夹是服务器上的一个真实目录。在我做第一次改变之前,.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
一旦我这样做,我能够_1的存取admin目录,但现在,所以它看起来像最后一个规则被忽略的内容不会在二级链接显示。
任何人都可以帮助我看到我在做什么错我会非常感激。
瑞恩·鲍尔
感谢您的及时回复。你是否说我删除了最后三条规则,并用你列出的新规则替换它,因为通配符应该覆盖二级链接? – 2012-07-31 23:34:32
我在说你应该只需要前四条规则,直至包括'RewriteRule ^(。*)$ index.php?page = $ 1'。但是,如果这不起作用,请保留所有*规则,并用'RewriteRule ^(。*)/(。*)$ index.php?page = $ 1/$ 2'替换最后一条规则。换句话说,在'$ 1'后面加上'/ $ 2'到最后一个规则。 – dririan 2012-07-31 23:37:21
谢谢你,当我试着做你说的话,包括添加/ $ 2服务器不能再显示第一级链接时,第二级链接仍然显示页面,但是数据库中的内容没有显示。这是有点奇怪,因为页面显示所有的CSS唯一不显示的是从服务器拉的内容 – 2012-07-31 23:55:09