使用htaccess和mod_rewrite来显示new-page而不是newpage



我正在我的网站上工作,我创建了一些新的网页,解释了我的网站的更多细节。现在出于搜索引擎优化的目的,我知道谷歌更喜欢包含关键词的链接。所以我写的页面可以叫做新鞋。现在我已经得到的页面工作为website.com/newshoes,但由于谷歌可能认为这是一个词,我正在努力使其显示website.com/new-shoes而不是使用htaccess,但我不能让它工作。这就是我想出来的,但是它不起作用。

RewriteRule ^([^/]*)-([^/]*)$ /index.php?$1$2 [QSA,L]

有谁能帮我一下吗?谢谢!

[编辑]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^reflap.com [NC]
RewriteRule (.*) http://www.reflap.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /index.php?$1 [QSA,L]
RewriteRule ^([^/]*)/$ /index.php?$1 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)$ /index.php?$1&$2 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)/$ /index.php?$1&$2 [QSA,L]

RewriteRule ^/facebook-chat/ http://chat.facebook.com/ [P]
ErrorDocument 404 /error.php
RewriteEngine On
RewriteRule ^([^/]*)-([^/]*)$ /index.php?$1$2
RewriteCond %{HTTP_HOST} ^reflap.com [NC]
RewriteRule (.*) http://www.reflap.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/?$ /index.php?$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/?$ /index.php?$1&$2 [QSA,L]

RewriteRule ^/facebook-chat/ http://chat.facebook.com/ [P]
ErrorDocument 404 /error.php

您需要在泛型之上的重写规则中放置具体内容-您所拥有的顺序意味着您将被重定向到index.php?New-page,因为你要先匹配一个更通用的模式

试试这个:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^reflap.com [NC]
RewriteRule (.*) http://www.reflap.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)-([^/]*)$ /index.php?$1$2 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)$ /index.php?$1&$2 [QSA,L]
RewriteRule ^([^/]*)/([^/]*)/$ /index.php?$1&$2 [QSA,L]
RewriteRule ^/facebook-chat/ http://chat.facebook.com/ [P]
RewriteRule ^([^/]*)$ /index.php?$1 [QSA,L]
RewriteRule ^([^/]*)/$ /index.php?$1 [QSA,L]
ErrorDocument 404 /error.php

这应该可以解决你的问题-但是在这个。htaccess中有一个更普遍的问题- RewriteCond指令只适用于紧跟其后的RewriteRule。它们不会继续遵循任何其他规则。这意味着无论文件或目录是否真的存在,第一个规则之后的所有规则都将应用。

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html rewritecond

最新更新