我写了.htaccess文件将网址转换为SEO友好:
原始网址是:
http://palestinianz.com/?page=person&p=Alex-Atalla
.htaccess的内容是:
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /?page=person&p=$1 [L]
它应该产生这样的链接:
http://palestinianz.com/Alex-Atalla.html
但是虽然我将文件放在我网站的根目录中但它没有任何效果! 问题出在哪里?
答案 0 :(得分:0)
您可以尝试:
RewriteCond %{REQUEST_URI} (.+)\.html$
RewriteRule ^(.+)\.html$ ./index.php?page=person&p=$1 [L]
唯一的问题是任何.html
页面都会经历这个问题。可能想要更改为以下内容:
# URL: domain.com/person/Alex-Atalla.html
RewriteCond %{REQUEST_URI} (.+)/(.+)\.html$
RewriteRule ^(.+)/(.+)\.html$ ./index.php?page=$1&p=$2 [L]
这样您就可以更灵活地更改页面变量
答案 1 :(得分:0)
如果您希望在地址栏中更改URL,则需要重定向浏览器,然后在服务器上重写。本回答的第一部分解释了您想要的过程:https://stackoverflow.com/a/11711948/851273
所以看第二个列表,如果一个丑陋的链接请求一个漂亮的链接,那么这个过程就是重定向浏览器:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\?page=person&p=([^\ ]+)
RewriteRule ^$ /%1.html? [R=301,L]
现在,在服务器端,你需要内部重写它回到丑陋的网址,这或多或少是你已经拥有的网址:
RewriteRule ^([^/]*)\.html$ /?page=person&p=$1 [L]