使用htaccess从php创建SEO友好的URL

时间:2014-06-13 11:01:58

标签: php .htaccess

我的网站网址如下所示;

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,我认为有什么不对?

3 个答案:

答案 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="/" />