【问题标题】:.htaccess RewriteRule for navigation.htaccess RewriteRule 用于导航
【发布时间】:2021-11-04 15:43:00
【问题描述】:

我需要重定向

www.monsite.fr/css

www.monsite.fr/index.php?p=css

在.Htaccess中

我尝试了很多在网站上找到的答案,但都没有成功:.htaccess RewriteRule for directory

我尝试在其他网站上制作正则表达式,但一旦测试它就不起作用

例子:

RewriteRule ^([^/]*)$ /index.php?p=$1 [L]
RewriteRule \/([^\/]*)$ /index.php?p=$1 [L]
RewriteRule ^([^.]+?)/?$ /index.php?p=$1 [L,QSA]

但没有任何效果。

我使用的网站告诉我这些规则可以做我想做的事:

RewriteEngine On
RewriteRule ^([^/]*)$ /index.php?p=$1 [L]

但最后我被重定向到

www.monsite.fr/css/?p=css

怎么了?

【问题讨论】:

    标签: .htaccess url-rewriting http-redirect


    【解决方案1】:

    通过搜索,我找到了这个可以完成工作的答案:

    RewriteEngine On    
    RewriteBase /
    RewriteRule ^([^/]+)/?$ index.php?p=$1 [L,NC,QSA]
    

    但我似乎有一个CSS问题。 style.css 文件似乎被视为 HTML 文件,我不明白为什么

    【讨论】:

      【解决方案2】:
      RewriteEngine On
      RewriteBase /
      #if file exist, serve the file
      RewriteCond %{REQUEST_FILENAME} -f
      RewriteRule ^ - [L]
      
      RewriteRule ^([^/]+)/?$ index.php?p=$1 [L,NC,QSA]
      RewriteRule ^([^/]+)/([^/]+)/?$ index.php?p=$1&n=$2 [L,NC,QSA]
      

      这个解决方案似乎有效。 有必要在重定向之前放置检查文件是否存在的规则,这样对css文件的请求就不会被重定向。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-21
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        相关资源
        最近更新 更多