如何检查.htaccess(url rewrite)是否正常工作

时间:2011-09-05 11:02:18

标签: .htaccess mod-rewrite url-rewriting

以下是.htaccess文件。我需要检查这个文件是否正常工作,但我不知道测试它的方法。有什么建议吗?

Options +FollowSymlinks
RewriteEngine On
RewriteBase /crown/

AddType text/xml .xslt
DirectoryIndex index.php

<Files *.xslt>
    SetHandler text/xml
</Files>

<IfModule !mod_php4.c>

    <IfModule !mod_php5.c>

        # PHP is in CGI Mode, so we need a different mod_rewrite

        RewriteCond %{REQUEST_URI} !categories\.php
        RewriteRule ^categories(.*) categories.php?$1 [L]

        RewriteCond %{REQUEST_URI} !articles\.php
        RewriteRule ^articles(.*)$ articles.php?$1 [L]

        RewriteCond %{REQUEST_URI} !pages\.php
        RewriteRule ^pages(.*)$ pages.php?$1 [L]

        RewriteCond %{REQUEST_URI} !blogs\.php
        RewriteRule ^blogs(.*)$ blogs.php?$1 [L]

        RewriteCond %{REQUEST_URI} !search.php
        RewriteRule ^search(.*)$ search\.php?$1 [L]

        RewriteCond %{REQUEST_URI} !authors.php
        RewriteRule ^authors(.*)$ authors\.php?$1 [L]

        RewriteCond %{REQUEST_URI} !articlerss.php
        RewriteRule ^articlerss(.*)$ articlerss\.php?$1 [L]

        RewriteCond %{REQUEST_URI} !news.php
        RewriteCond %{REQUEST_URI} !newsrss.php
        RewriteRule ^news(.*)$ news.php?$1 [L]

        RewriteCond %{REQUEST_URI} !contact.php
        RewriteRule ^contact(.*)$ contact\.php?$1 [L]


    </IfModule>

    <IfModule mod_php5.c>

        # Using PHP 5 in module mode

        RewriteCond %{REQUEST_URI} categories.*
        RewriteRule ^categories(.*)$ categories.php?$1 [T=application/x-httpd-php,L]

        RewriteCond %{REQUEST_URI} articles.*
        RewriteRule ^articles(.*)$ articles.php?$1 [T=application/x-httpd-php,L]

        RewriteCond %{REQUEST_URI} pages.*
        RewriteRule ^pages(.*)$ pages.php?$1 [T=application/x-httpd-php,L]

        RewriteCond %{REQUEST_URI} blogs.*
        RewriteRule ^blogs(.*)$ blogs.php?$1 [T=application/x-httpd-php,L]

        RewriteCond %{REQUEST_URI} search.*
        RewriteRule ^search(.*)$ search.php?$1 [T=application/x-httpd-php,L]

        RewriteCond %{REQUEST_URI} authors.*
        RewriteRule ^authors(.*)$ authors.php?$1 [T=application/x-httpd-php,L]

        RewriteCond %{REQUEST_URI} articlerss.*
        RewriteRule ^articlerss(.*)$ articlerss.php?$1 [T=application/x-httpd-php,L]

        RewriteCond %{REQUEST_URI} news.*
        RewriteCond %{REQUEST_URI} !newsrss
        RewriteRule ^news(.*)$ news.php?$1 [T=application/x-httpd-php,L]

        RewriteCond %{REQUEST_URI} contact.*
        RewriteRule ^contact(.*)$ contact.php?$1 [T=application/x-httpd-php,L]

    </IfModule>

</IfModule>

<IfModule mod_php4.c>

    # PHP 4 in module mode

    RewriteCond %{REQUEST_URI} categories.*
    RewriteRule ^categories(.*)$ categories.php?$1 [T=application/x-httpd-php,L]

    RewriteCond %{REQUEST_URI} articles.*
    RewriteRule ^articles(.*)$ articles.php?$1 [T=application/x-httpd-php,L]

    RewriteCond %{REQUEST_URI} pages.*
    RewriteRule ^pages(.*)$ pages.php?$1 [T=application/x-httpd-php,L]

    RewriteCond %{REQUEST_URI} blogs.*
    RewriteRule ^blogs(.*)$ blogs.php?$1 [T=application/x-httpd-php,L]

    RewriteCond %{REQUEST_URI} search.*
    RewriteRule ^search(.*)$ search.php?$1 [T=application/x-httpd-php,L]

    RewriteCond %{REQUEST_URI} authors.*
    RewriteRule ^authors(.*)$ authors.php?$1 [T=application/x-httpd-php,L]

    RewriteCond %{REQUEST_URI} articlerss.*
    RewriteRule ^articlerss(.*)$ articlerss.php?$1 [T=application/x-httpd-php,L]

    RewriteCond %{REQUEST_URI} news.*
    RewriteCond %{REQUEST_URI} !newsrss
    RewriteRule ^news(.*)$ news.php?$1 [T=application/x-httpd-php,L]

    RewriteCond %{REQUEST_URI} contact.*
    RewriteRule ^contact(.*)$ contact.php?$1 [T=application/x-httpd-php,L]

</IfModule>

1 个答案:

答案 0 :(得分:1)

此问题与earlier message有关。最后,问题出现在服务器上,管理员升级了apache服务器,改变了配置中的内容。添加以下行后,url重写再次起作用:

Options -MultiViews