.htaccess提供' flattened'搜索引擎友好的CMS网址

时间:2014-03-19 21:53:54

标签: mod-rewrite

我正在将CMSMADESIMPLE用于网站。它可以使用.htaccess文件和mod_rewrite生成搜索引擎友好的URL。

但是可以在基本网址和请求的网页之间插入任何内容。例如,所有这些URL都可以使用:

www.example.com/aboutus
www.example.com/home/aboutus
www.example.com/any/rubbish/i/enter/aboutus

我见过其他使用Wordpress的网站,可以在地址窗口中输入相同内容,但它会重定向回最低级别,即www.example.com/aboutus。我想实现同样的目标,但不能掌握.htaccess来做到这一点。

.htaccess文件的相关位是:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>

我假设这是可以使用mod_rewrite实现的,并且不需要更改CMS中的PHP代码。

如果无法做到这一点,我想从CMS中已被Google编入索引的某些网址设置永久重定向。

即从 www.example.com/home/aboutus www.example.com/aboutus

我尝试将RewriteRule添加到.htaccess但没有成功:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule home/aboutus aboutus [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

查看doc文件夹中的示例htaccess.txt文件。有一个关于父母的部分。

    # Rewrites urls in the form of /parent/child/
    # but only rewrites if the requested URL is not a file or directory
    #
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ index.php?page=$1 [QSA]