我想显示url
http://some.com/designit/portfolio.php?cat=website&subcat=nature
如
http://some.com/designit/portfolio/website/nature.
cat和subcat在URL中可能会出现,但并不总是。
我把这个.htaccess文件放在designit文件夹中:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ $1.php [L,QSA] RewriteRule ^portfolio/?$ portfolio.php[NC,QSA] RewriteRule ^portfolio/([a-zA-Z0-9_-]+)/?$ portfolio.php?cat=$1[L,NC,QSA]
现在,它正在显示
..some.com/designit/portfolio.php
如
..some.com/designit/portfolio
但没有显示
..some.com/designit/portfolio.php?cat=website
如
..some.com/designit/portfolio/website
我得到“内部服务器错误。服务器遇到内部错误或configuration错误,无法完成您的请求。”
我需要做什么来解决这个问题?
这是你的解决scheme:
http://some.com/designit/portfolio/website/nature
应该给
http://some.com/designit/portfolio.php?cat=website&subcat=nature
你只需要一个重写规则:
RewriteEngine On RewriteRule /designit/portfolio/([az]+)/([az]+)$ /designit/portfolio.php?cat=$1&subcat=$2
请注意:
请参阅下面的url:可以帮助你。
把你的更具体的规则,第二个,在总则之前,它应该工作。
试试下面:
RewriteEngine on RewriteRule ^portfolio/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ /disignit/portfolio.php?first-var=$1&second-var=$2 [NC]