htaccess for Dynamic URL Rewrite with .html扩展名基于url选择

时间:2013-08-19 08:53:18

标签: .htaccess mod-rewrite url-rewriting dynamic-url htmlextensions

我正在尝试重写一些动态页面网址,其中数据是从数据库中获取的,例如“this-is-a-link”。

        Options +FollowSymlinks
        RewriteEngine On

        RewriteBase /testweb/

        RewriteCond %{REQUEST_FILENAME} !-d [NC]
        RewriteCond %{REQUEST_FILENAME} !-f [NC]
        RewriteRule ^(.*)$ faq_pages.php?page=$1 [QSA,L]

它适用于http://www.test.com/testweb/this-is-a-link

但我需要根据点击的任何链接更改重写规则。

http://www.test.com/testweb/faq/this-is-a-link,'testweb / news / this-is-another-link','/ testweb / testimonials / test-link'

上述RewriteRule中的“ faq_pages.php ”应更改为“ news_pages.php ”。我怎样才能动态地将它用于具有相同htaccess的每个页面,或者如何检查并重写htaccess中不同页面的值。

另外请建议我如何纠正以下代码。

        Options +FollowSymlinks
        RewriteEngine on
        RewriteRule ^(.*)\.html$ faq_pages.php?page=$1

我需要在地址栏中显示html网址,例如'/testweb/this-is-a-link.html'或'/testweb/faq/this-is-a-link.html'

修改:在Jon Lin的帮助下,我更新了我的代码,如下所示。

        Options +FollowSymlinks
        RewriteEngine On

        RewriteBase /testweb/

        RewriteCond %{REQUEST_FILENAME} !-d [NC]
        RewriteCond %{REQUEST_FILENAME} !-f [NC]
        RewriteRule ^faq/(.*?)/?$ faq_pages.php?page=$1 [QSA]

现在以下两个条件都有效:             /testweb/faq/another-faq-test.html,
            /testweb/faq/another-faq-test.html /

由于我没有任何名为'faq'的子文件夹,因此根文件夹中的模板文件(images / css / js等)未加载。 我该如何解决?

感谢你

1 个答案:

答案 0 :(得分:0)

你在找这样的东西吗?

    Options +FollowSymlinks
    RewriteEngine On

    RewriteBase /testweb/

    RewriteCond %{REQUEST_FILENAME} !-d [NC]
    RewriteCond %{REQUEST_FILENAME} !-f [NC]
    RewriteRule ^faq/(.*)$ faq_pages.php?page=$1 [QSA,L]

    RewriteCond %{REQUEST_FILENAME} !-d [NC]
    RewriteCond %{REQUEST_FILENAME} !-f [NC]
    RewriteRule ^news/(.*)$ news_pages.php?page=$1 [QSA,L]