【问题标题】:mod-rewrite to work with oth server and userdirmod-rewrite 与其他服务器和用户目录一起工作
【发布时间】:2015-02-23 20:29:31
【问题描述】:

我正在使用 Apache mod_rewrite 和 userdir。 我想写一个在任何地方都可以使用的 .htaccess,有没有办法删除 RewriteBase 或使用 Apache 变量设置它?

这是我的 .htaccess :

RewriteEngine On

RewriteBase /~leo/lstronic/v2/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . ./index.php [QSA,L]

我还需要保留相对 URL,我就是这样做的:

$config['root_directory']=__DIR__;
$config['project_subdirectory']=str_replace("/home/leo/public_html/","/~leo/",$config['root_directory']);
//$config['project_subdirectory']=str_replace($_SERVER['DOCUMENT_ROOT'],"",$config['root_directory']);

有没有办法让最后两条线在任何地方都可以使用?

狮子

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    您可以使用此规则在环境变量中动态生成RewriteBase,并在您的规则中使用它。

    RewriteEngine On
    
    RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
    RewriteRule ^(.*)$ - [E=BASE:%1]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule . %{ENV:BASE}index.php [L]
    

    【讨论】:

    • 解决了我遇到的 Apache 问题
    猜你喜欢
    • 2014-07-30
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多