我有以下需要重写的网址: product.php IATA =电视+?产品= 12345 至 产品/ - 电视/电视/索尼的Bravia / 12345
和
产品list.php的?IATA =电视 至 产品列表/电视/电视
我的htaccess文件中有以下重写规则:
RewriteRule [^/]+/([A-Za-z]+)/[^/]+/([0-9]+) product.php?iata=$1&product=$2 [L,QSA,NC]
RewriteRule [^/]+/([A-Za-z]+) product-list.php?iata=$1 [L,QSA,NC]
但它们无法正常工作。请任何人都可以帮忙。
另外,如果product-list.php也有两个查询变量怎么办?该规则是否会与product.php的规则冲突?
由于
答案 0 :(得分:0)
将此代码放入.htaccess文件中:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteRule ^product-list/[^/]+/(.*)$ product-list.php?iata=$1 [L,QSA,NC]
RewriteRule ^product/[^/]+/([^/]+)/[^/]+/(.*)$ product.php?iata=$1&product=$2 [L,QSA,NC]
答案 1 :(得分:0)
试试这个:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^product/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)$ product.php?iata=$2&product=$4 [QSA,NC,L]
RewriteRule ^product-list/([^/\.]+)/([^/\.]+)$ product-list.php?iata=$2 [QSA,NC,L]
告诉我它是否有效
如果您不在托管环境中(=如果它是您自己的服务器并且您可以修改虚拟主机,而不仅仅是.htaccess
文件),请尝试使用RewriteLog
指令:它帮助您追踪此类问题:
# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On
我最喜欢检查regexp的工具:
http://www.quanetic.com/Regex(别忘了选择ereg(POSIX)而不是preg(PCRE)!)