Php htaccess将url从文件重定向到根目录

Php htaccess将url从文件重定向到根目录,php,.htaccess,Php,.htaccess,我已经试着破解这个问题好几个小时了,如果可能的话,我现在正在寻找答案 试图从 www.domain.co.uk/Product.php?Product=实心橡木餐桌 到 www.domain.co.uk/solid-oak-dinning-table/ 我尝试了很多谷歌/其他代码,但我发现最接近的是 RewriteRule^([a-zA-Z0-9]+)$Product.php?Product=$1 重写规则^([a-zA-Z0-9]+)/$Product.php?Product=$1 但

我已经试着破解这个问题好几个小时了,如果可能的话,我现在正在寻找答案

试图从

www.domain.co.uk/Product.php?Product=实心橡木餐桌

www.domain.co.uk/solid-oak-dinning-table/
我尝试了很多谷歌/其他代码,但我发现最接近的是

RewriteRule^([a-zA-Z0-9]+)$Product.php?Product=$1
重写规则^([a-zA-Z0-9]+)/$Product.php?Product=$1
但我刚拿到404。 很高兴更改文件位置或设置,但最终结果必须是根目录上的产品名称


非常感谢。

我认为问题在于您没有考虑查询字符串中的
-
,因此您需要更改此设置,从您的屏幕截图来看,您似乎正在使用windows,因此您需要启用
mod_rewrite
apache模块(如果尚未启用),并将其放入
.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

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

我认为问题在于您没有考虑查询字符串中的
-
,因此您需要更改此设置,从屏幕截图来看,您似乎正在使用windows,因此您需要启用
mod_rewrite
apache模块(如果尚未启用),并将其放入
中。htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

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

使用查询字符串检查此重定向

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} ^Product\.php
RewriteCond %{QUERY_STRING} product=([A-Za-z0-9-]+) [NC]
RewriteRule (.*) /$1/ [R=301,L]
</IfModule>

重写cond%{REQUEST_URI}^Product\.php
重写cond%{QUERY_STRING}产品=([A-Za-z0-9-]+)[NC]
重写规则(.*)/$1/[R=301,L]

用查询字符串检查此重定向

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} ^Product\.php
RewriteCond %{QUERY_STRING} product=([A-Za-z0-9-]+) [NC]
RewriteRule (.*) /$1/ [R=301,L]
</IfModule>

重写cond%{REQUEST_URI}^Product\.php
重写cond%{QUERY_STRING}产品=([A-Za-z0-9-]+)[NC]
重写规则(.*)/$1/[R=301,L]

在dev服务器上安装了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>

重新启动发动机
重写基/
重写规则^Product\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/Product.php[L]

真是一种享受!希望这能帮助其他人。7小时获得一个简短的网址

在dev服务器上安装了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>

重新启动发动机
重写基/
重写规则^Product\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/Product.php[L]

真是一种享受!希望这能帮助其他人。7小时获得一个简短的网址

谢谢@kellymandem,但由于这不起作用,我开始认为这是不可能的。因为浏览器如何知道/product string/或/about us/之间的区别,因为它们都是根目录中的字符串。@alexholsgrove您能帮上忙吗?@user2005386您能截取网站根目录文件结构的屏幕截图并将其添加到您的question@user2005386我编辑了我的答案,我希望它能帮上忙谢谢@kellymandem,但由于它不起作用,我开始认为这是不可能的。因为浏览器如何知道/product string/或/about us/之间的区别,因为它们都是根目录中的字符串。@alexholsgrove您能帮上忙吗?@user2005386您能截取网站根目录文件结构的屏幕截图并将其添加到您的question@user2005386我编辑了我的答案,如果在浏览器中输入
www.domain.co.uk/solid oak dining table/
,是否会出现
404
错误?这是正确的-我确实会遇到404错误如果在浏览器中输入
www.domain.co.uk/solid oak dining table/
,是否会出现
404
错误?这是正确的-我确实会遇到404错误添加上述内容代码仍然无法解决此问题。也许它不可编码?添加上述代码仍然不能解决问题。也许它不可编码?