Php 带有GET参数的mod_重写问题
我正在修改ApachePhp 带有GET参数的mod_重写问题,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我正在修改Apache.htaccess文件以重写产品的URL,因此我可以从这里开始 domain.com/section/products/product.php?url=some-product-name 对此 domain.com/section/products/some-product-name 下面是我正在使用的mod_rewrite代码: Options -Indexes Options +FollowSymlinks Options -MultiViews RewriteEn
.htaccess
文件以重写产品的URL,因此我可以从这里开始
domain.com/section/products/product.php?url=some-product-name
对此
domain.com/section/products/some-product-name
下面是我正在使用的mod_rewrite
代码:
Options -Indexes
Options +FollowSymlinks
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteRule ^section/products/(.*)$ /section/products/product.php?url=$1 [QSA,L]
它只返回一个500服务器错误
有什么问题吗?这是因为您的重写规则是无限循环的。这是因为
节/products/(*)
模式匹配原始和重写的URI
您可以使用此选项进行修复:
Options +FollowSymlinks -Indexes -MultiViews
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteRule ^(section/products)/([\w-]+)$ $1/product.php?url=$2 [QSA,L,NC]
这是天才。非常感谢你。我需要其他
mod_rewrite
方面的帮助,我不能在90分钟内再提出问题,我可以在评论中请求您的帮助吗?谢谢。我在路径中有一个名为“products”的文件夹:/section/products/
。我还有产品回音文件(products.php
),我希望能够区分products
和products/
,因此如果URL没有斜杠,应该转到products.php
。如果URL有斜杠(没有任何其他内容作为get
)传递),则必须重定向到/section/products
(.php文件)。我希望我的解释是正确的。是的。在/section/
内部,我有/section/products.php
和/section/products/
产品。php
从/section/
加载,product.php
是从/section/products/
加载的,/section/products/
中没有索引.php
文件。有没有办法“模拟”/section/products
?例如,将真实文件夹的名称更改为类似于\u products的名称,然后将其重新定向到/section/products
。