将现有URL重定向到SEO友好URL

时间:2015-03-25 16:47:44

标签: php .htaccess redirect

我遇到了一个问题,即我尝试的每个.htaccess查询都没有解决!我有这样的网址:

http://www.example.com/index.php?x=product

我想将其更改为用户友好的URL,如下所示:

http://www.example.com/product/

或者它可以是:

http://www.example.com/product.php

我已经尝试过以下代码:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^x=product$
RewriteRule ^index.php.*$ http://www.example.com/product.php? [R=302,L]

现在,它完全重定向,但这不是问题。我仅将此用于SEO,因此我必须在product.php文件中包含http://www.example.com/index.php?x=product。任何帮助都是宝贵的,谢谢......

2 个答案:

答案 0 :(得分:0)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /index\.php\?x=([^\s&]+) [NC]
RewriteRule ^ /%1/? [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/.]+)/?$ index.php?x=$1 [L,QSA]

这会将/index.php?x=product重定向到/product/,并在第二条规则中将其内部重写为/index.php?x=product

答案 1 :(得分:0)

您不需要在product.php文件中放置任何内容。确保目录中有一个.htaccess,其中包含要使url / seo友好的文件。

让SEO友好,确保它的格式 http://www.example.com/product/而非http://www.example.com/product.php 如果你必须有一个文件扩展名,请将它放在http://www.example.com/products.html中(你想告诉搜索引擎该页面不是动态的,尽管它是为了获得更好的页面搜索)

将此插入.htaccess

RewriteRule /(.*)/$ products.php?x=$1

(.*)将元素拉出并将它们放入变量$ 1