我已经尝试破解了几个小时,现在尽可能寻求答案/指导。
尝试出发
www.domain.co.uk/Product.php?product=solid-oak-dining-table
到
www.domain.co.uk/solid-oak-dining-table/
我尝试了很多Google /其他代码,但发现的最接近的是...
RewriteRule ^([a-zA-Z0-9]+)$ Product.php?product=$1
RewriteRule ^([a-zA-Z0-9]+)/$ Product.php?product=$1
但是我只得到404。 很高兴更改文件位置或设置,但最终结果必须是根目录上的产品名称。
非常感谢。
答案 0 :(得分:0)
我认为问题是您没有考虑查询字符串中的-
,因此您需要更改它,而从屏幕快照中似乎您正在使用Windows,因此您需要启用mod_rewrite
Apache模块(如果尚未启用)并将其放入您的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^([a-zA-Z0-9]+)$ Product.php?product=$1
</IfModule>
如果您使用的是xampp
或wamp
,并且文件位于名为test
的文件夹中,则该文件夹中的htaccess
文件需要看起来像: / p>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /test/
RewriteRule ^([a-zA-Z0-9]+)$ Product.php?product=$1
</IfModule>
答案 1 :(得分:0)
使用查询字符串检查此重定向
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} ^Product\.php
RewriteCond %{QUERY_STRING} product=([A-Za-z0-9-]+) [NC]
RewriteRule (.*) /$1/ [R=301,L]
</IfModule>
答案 2 :(得分:0)
是否在开发服务器上安装了Wordpress,以生成.htacces文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^Product\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /Product.php [L]
</IfModule>
请客!希望这可以帮助其他人。 7小时即可获得简短的网址!