htaccess将网址从文件重定向到根目录

时间:2019-02-09 12:27:17

标签: php .htaccess

我已经尝试破解了几个小时,现在尽可能寻求答案/指导。

file structure

尝试出发

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。 很高兴更改文件位置或设置,但最终结果必须是根目录上的产品名称。

非常感谢。

3 个答案:

答案 0 :(得分:0)

我认为问题是您没有考虑查询字符串中的-,因此您需要更改它,而从屏幕快照中似乎您正在使用Windows,因此您需要启用mod_rewrite Apache模块(如果尚未启用)并将其放入您的.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteRule ^([a-zA-Z0-9]+)$ Product.php?product=$1
</IfModule>

如果您使用的是xamppwamp,并且文件位于名为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小时即可获得简短的网址!