0

我正在开发我的网站,并创建了一些新的网页来解释我的网站的更多细节。现在出于 seo 的目的,我知道谷歌更喜欢链接包含关键词。所以我正在制作的页面可以称为新鞋。现在我已经让这些页面作为 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
4

2 回答 2

1
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
于 2013-05-23T07:03:12.697 回答
0

你需要在你的重写规则中把细节放在泛型之上——你的顺序意味着你被重定向到 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

于 2013-05-23T06:14:59.057 回答