我遇到了一个问题,即我尝试的每个.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。任何帮助都是宝贵的,谢谢......
答案 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