0

我编写了 .htaccess 文件来将 url 转换为 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

但是,尽管我将文件放在我网站的根目录中,但它没有任何效果!哪里有问题 ?

4

2 回答 2

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]

这将使您在更改页面变量时也更加稳健

于 2012-07-31T16:17:27.097 回答
0

如果希望地址栏中的 URL 发生变化,则需要重定向浏览器,然后在服务器上重写。此答案的第一部分解释了您想要的过程:https ://stackoverflow.com/a/11711948/851273

所以看看第二个列表,如果一个丑陋的链接被请求到一个漂亮的链接,这个过程是重定向浏览器:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\?page=person&p=([^\ ]+)
RewriteRule ^$ /%1.html? [R=301,L]

现在,在服务器端,您需要在内部将其重写为丑陋的 url,这或多或少是您已经拥有的:

RewriteRule ^([^/]*)\.html$ /?page=person&p=$1 [L]
于 2012-07-31T17:38:55.763 回答