htaccess重写规则到index.php?p = pagename

时间:2014-02-01 17:31:02

标签: php .htaccess mod-rewrite

我正在使用此htaccess代码来创建重写规则

RewriteCond %{HTTP_HOST} ^my\.domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ index.php?p=$1.php [L,QSA]

我想重写像

这样的网页

http://my.domain.net/index.php?p=tickets/openticket看起来像http://my.domain.net/tickets/openticket

但它只是显示没有?p= ...

的index.php

2 个答案:

答案 0 :(得分:1)

尝试使用此代码作为第一条规则

RewriteCond %{THE_REQUEST} /index\.php\?p=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+?)/?$ index.php?p=$1 [L,QSA]

答案 1 :(得分:0)

RewriteRule ^(。*)$ index.php?p = $ 1 [L,QSA]

试试这个。