我的网站网址如下所示;
myhomesite.ext/listino/macchine/listino/marca.php?marca=Audi
我希望获得类似如下的网址
myhomesite.ext/listino/macchine/listino/marca-Audi/
所以,我尝试使用以下代码
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
</IfModule>
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^marca/([a-zA-Z0-9]+)/$ marca.php?marca=$1
</IfModule>
但没有任何反应,我不明白,请指出我的错误在哪里。
这是我最新添加的评论
哦,是的,这是正确的我正在尝试多种解决方案,但现在我已经尝试了一个生成器工具的代码
Options +FollowSymLinks
RewriteEngine on
RewriteRule marca/marca/(.*)/ marca.php?marca=$1
RewriteRule marca/marca/(.*) marca.php?marca=$1
如果我继续使用mediasportweb.com/macchine/listino/marca/marca/15,我会找到网址上的网页上有很多问题,但是我找到了,但我也找到了网址mediasportweb.com/ macchine / listino / marca.php?marca = 15,我认为指令重写url擦除了旧的url,我认为有什么不对?
答案 0 :(得分:0)
请注意,您应该从代码中获取的网址是:
myhomesite.ext/macchine/listino/marca/Audi/
而不是:
myhomesite.ext/macchine/listino/marca-Audi/
答案 1 :(得分:0)
如何改为
RewriteRule ^marca\-([a-zA-Z0-9]+)/$ marca.php?marca=$1
来自
RewriteRule ^marca/([a-zA-Z0-9]+)/$ marca.php?marca=$1
答案 2 :(得分:0)
将此规则放在/macchine/listino/.htaccess
:
RewriteEngine On
RewriteBase /macchine/listino/
RewriteCond /marca\.php\?marca=([^\s&]+) [NC]
RewriteRule ^ marca/marca/%1? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule marca/marca/([^/]+)/?$ marca.php?marca=$1 [L,QSA,NC]
对于css / js等,使用css,js,images文件中的绝对路径而不是相对路径。这意味着您必须确保这些文件的路径以http://
或斜杠/
开头。
您可以尝试在页面的HTML标题中添加:<base href="/" />