【问题标题】:.htaccess call index.php with mydomain.com/mypage/.htaccess 使用 mydomain.com/mypage/ 调用 index.php
【发布时间】:2012-12-05 22:00:16
【问题描述】:

我的 .htaccess 包含以下代码,以便使用此 url http://www.example.com/contact.html 调用 index.php?pname=contact:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)\.html$ ?pname=$1 [L,QSA]

</IfModule>

我添加了以下代码,以便它也可以与这个网址 (http://www.example.com/contact/) 一起使用:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*?([^\.\/]*)/?$ ?pname=$1 [L,QSA]

现在我不希望可以通过多个 url 访问联系页面。 如何包含 301 重定向,以便 www.example.com/contact.html 和 www.example.com/contact 都被重定向到 www.example.com/contact/?

谢谢!

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    您可以在 .htaccess 中使用它:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^/(.*)\.html$ /$1/ [L,QSA,R]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*?([^\.\/]*)$ /$1/ [L,QSA,R]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*?([^\.\/]*)/$ ?pname=$1 [L,QSA]
    

    R 选项进行重定向。

    【讨论】:

    • 感谢 antoyo,我必须编辑您的解决方案才能使其正常工作。我无法在接下来的 6 小时内回答我自己的问题,因为 stackoverflow 不允许我这样做。但我明天会发布我的答案!
    猜你喜欢
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 2012-01-08
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多