0

我正在尝试使 URL 更适合我的网站以用于 SEO 目的。

当前页面显示如下:

SITE/[number]-[page name].html

我想让页面以如下格式显示。

example 1.
SITE/[page name].html 

或者

example 2.
SITE/[page name]-[number].html 

(如果可能的话,我宁愿留下页码,如示例 1,但如果必须包含它,我希望它位于 url 的末尾,如上面的第二个示例。)

我在 .htaccess 文件中有以下规则。

RewriteRule ^([0-9]+)-(.*)$ site_page.php?page=$1

我最大的问题是我尝试了很多方法来让重写来做我需要的事情。在重写方面,我是一个完全的新手。

我没有高兴地将重写更改为以下内容。

RewriteRule ^(.*)-([0-9]+)$ site_page.php?page=$1
RewriteRule ^(.*)-([0-9])$ site_page.php?page=$1
RewriteRule ^(.*+)-([0-9]+)$ site_page.php?page=$1
RewriteRule ^([.*]+)-([0-9]+)$ site_page.php?page=$1

我尝试过的上述方法是保留页面ID号,我希望完全摆脱这些数字。

我在 setting.php 文件中有以下几行,用于控制网站如何创建相关链接。它会按照我的意愿显示它们。但是我收到 404 错误,因为我认为重写规则没有显示我期望它显示的内容。

// non seo url
$setup_url['normal']['resource']     = "$url_base/site_page.php?page=[number]"; 

// seo url
$setup_url['seo']['resource']    = "$url_base/[number]-[name].html";

我看过很多关于 mod 重写规则的文章,但似乎无处可去。任何帮助将不胜感激。

非常感谢。标记。

4

1 回答 1

1

似乎您忘记了.html规则中的扩展名。

RewriteRule ^(.+)-(\d+)\.html$ site_page.php?$1=$2 [L]
于 2013-01-09T13:33:10.447 回答