【问题标题】:Can I make (DirectoryIndex) in .htaccess file variable with current directory?我可以使用当前目录在 .htaccess 文件中创建 (DirectoryIndex) 变量吗?
【发布时间】:2014-04-04 06:05:20
【问题描述】:

我知道我可以使用 DirectoryIndex index.php products.php 用于默认文件。

但是,是否可以使用当前文件夹使其可变,所以它会是这样的:

DirectoryIndex CurrentFolderName.php

或附加一些文本,例如:

DirectoryIndex CurrentFolderName+123.php

所以这将使默认文件如下:

对于 www.mysite.com/products/ 它将是(products.php 或 products123.php)

对于 www.mysite.com/about-us/ 它将是(about-us.php 或 about-us123.php)

对于 www.mysite.com/service/ 它将是 (service.php 或 service123.php) .... 等等。

有可能吗?如果可能的话,它是否有任何性能副作用?

【问题讨论】:

    标签: .htaccess directoryindex


    【解决方案1】:

    您需要将此指令放在根.htaccess 文件中:

    RewriteEngine On
    
    # remove extra trailing slash
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
    RewriteRule ^(.+?)/$ $1 [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI}/ -d
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI}.php -f [NC]
    RewriteRule ^(.+?)/?$ $1/$1.php [L]
    
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI}/ -d
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI}123.php -f [NC]
    RewriteRule ^(.+?)/?$ $1/$1123.php [L]
    

    【讨论】:

    • 我认为 OP 希望在 .htaccess 中动态检索当前文件夹名称。这真的可能如你所想吗?
    • 有一些复杂的规则是可能的,但让我们看看OP怎么说。
    • 感谢大家的回复,但就像 Rahil 说的那样,我想在根目录下这样做,这样我就不必为每个文件夹都放一个 .htaccess 文件了?
    • 我也想让你知道我的问题的原因,可能有更简单的解决方案: 1-我喜欢网站的文件夹结构。 2-我不希望我所有的站点文件名都是 index.php 以便于处理。我知道 php 有办法重写 url,但我不是 php 专家,还有其他解决方案吗?
    • products.php OR products123.php 是否存在于/products/ 目录或根级别?
    猜你喜欢
    • 2016-07-15
    • 2015-06-06
    • 2010-12-18
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多