【问题标题】:htaccess rewriterule directory redirecthtaccess rewriterule 目录重定向
【发布时间】:2016-05-12 04:29:48
【问题描述】:

当用户请求目录时(如果文件存在),我正在使用 htaccess 加载文件, 所以如果你去 /login/ 你加载 /login.php 等等等等。

如果请求不是index.php,并且如果“map”(文件)不存在,它应该加载user.php和它后面的map,所以/thomas/应该加载user.php?dir=thomas

这是我想要的,但我似乎无法让它工作,这是目前我的 htaccess,它工作,但登录/注册/注销也附加到 user.php,当我取消注释该行时当(例如)加载索引时,它将导致无限循环。

RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index\.php [NC]
#RewriteRule ^(login|register|logout)(/|)$ $1.php [L,NC,QSA]
RewriteRule ^([^\?]*)$ user.php?dir=$1   [L,QSA]

提前致谢!

编辑: 我更改了 .htaccess 以检查 php 文件是否存在,如果存在则包含它。但是现在我的文件夹 /settings/ 不再起作用了;(

RewriteEngine On

RewriteBase /
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1/ [R,L,NC]

# To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} ^(.*?)(/(.*)|)$
RewriteCond %{DOCUMENT_ROOT}$1.php -f
RewriteRule ^(.*?)(/(.*)|)$ $1.php?args=$2 [L,QSA]


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\?]+)$ user.php?dir=$1   [L,QSA]

我希望像根一样发生同样的事情。例如,我希望它尝试,当我转到 /settings/modules 时,它首先检查 /settings/modules/index.php 是否存在,如果不存在,则检查 /settings/modules.php 是否存在,如果不存在,则检查设置.php 存在,如果存在,包括 settings.php?args=modules 但我不知道这是否可能:\

我希望我的意图很明确 x)

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    试试:

    RewriteEngine On
    
    RewriteBase /
    # let existing file/dir pass through untouched#   
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    #####
    RewriteRule ^(login|register|logout)/?$ $1.php [L,NC,QSA]
    RewriteRule ^(.+)$ user.php?dir=$1   [L,QSA]
    

    【讨论】:

    • 它仍然给我无限重写问题:3
    • 我编辑了我的原始帖子,我改变了一些东西以更全球化,但它破坏了文件夹 /settings/
    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2012-04-23
    • 1970-01-01
    相关资源
    最近更新 更多