友好的URL只打开post.php而不是cat.php

时间:2017-08-04 17:10:33

标签: apache .htaccess mod-rewrite

朋友们,让php文件打开友好的URL内容的正确方法是什么?

如果我只使用:

,我当前的代码可以正常工作
Options +FollowSymLinks

RewriteEngine On

# SEO URL Settings
RewriteBase /site/

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ post.php?id=$1 [QSA,L]

但是我的类别也需要友好的URL,所以我尝试添加:

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ cat.php?cat=$1 [QSA,L]

但这样做只会打开帖子URL,但类别链接会重定向回index.php,但是如果你删除了post的重写而不是cat.php内容显示。

如果有人能帮到我,我真的很感激你的善意。

1 个答案:

答案 0 :(得分:0)

这是因为您使用了[L]标志。

  

[L]标志使mod_rewrite停止处理规则集。在   大多数情况下,这意味着如果规则匹配,则没有进一步的规则   将被处理。这对应于Perl中的最后一个命令,或   C中的break命令。使用此标志指示当前   应立即应用规则而不考虑进一步的规则。

Documentation

相反,请尝试按照以下规则制定规则:

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ post.php?id=$1 [QSA]
RewriteRule ^(.*)$ cat.php?cat=$1 [QSA,L]