.htaccess htaccess规则-取代符号链接文件

.htaccess htaccess规则-取代符号链接文件,.htaccess,.htaccess,我正在从事这个遗留项目,它有一个非常奇怪的设置,我希望摆脱它,但我的htaccess技能在这个部门有点缺乏 这是目录结构 /index.php /www page1.php -> symlink to index.php page2.php -> symlink to index.php page3.php -> symlink to index.php /www是公共目录,人们可以访问http://site/page1.php。但是,每个带有*的文件实际上都链接

我正在从事这个遗留项目,它有一个非常奇怪的设置,我希望摆脱它,但我的htaccess技能在这个部门有点缺乏

这是目录结构

/index.php
/www
  page1.php -> symlink to index.php
  page2.php -> symlink to index.php
  page3.php -> symlink to index.php
/www是公共目录,人们可以访问
http://site/page1.php
。但是,每个带有*的文件实际上都链接到/index.php

我觉得这种安排很愚蠢,我想去掉符号链接,让任何/www/*.php请求直接指向index.php,而不让页面实际重定向到index.php


有没有关于htaccess规则的想法可以解决这个问题?最基本的核心是,我希望保留相同的功能,而不必有上千个符号链接的文件。

看起来
index.php
文件不在您的文档根目录中(我假设它是
www
),因此,我认为没有办法从.htaccess文件中执行此操作。为了访问文档根目录以外的内容,您需要在服务器配置或vhost配置中设置别名:

# Somewhere in vhost/server config
Alias /index.php /var/www/path/to/index.php

# We need to make sure this path is allowed to be served by apache, otherwise
# you will always get "403 Forbidden" if you try to access "/index.php"
<Directory "/var/www/path/to">
        Options None
        Order allow,deny
        Allow from all
</Directory>
当您请求http://site/page1.php,浏览器的地址栏不变,但服务器实际提供的是
/index.php
,别名为
/var/www/path/to/index.php


如果需要,可以将正则表达式
^(.*)\.php$
调整为更合适的形式。这只匹配以
.php
结尾的任何内容,包括
/blah/bleh/foo/bar/somethingsomething.php
。如果您想限制目录深度,可以将正则表达式调整为
^([^/]+)\.php$
,等等。

看起来
index.php
文件不在您的文档根目录中(我假设是
www
),因此,我认为没有办法从.htaccess文件执行此操作。为了访问文档根目录以外的内容,您需要在服务器配置或vhost配置中设置别名:

# Somewhere in vhost/server config
Alias /index.php /var/www/path/to/index.php

# We need to make sure this path is allowed to be served by apache, otherwise
# you will always get "403 Forbidden" if you try to access "/index.php"
<Directory "/var/www/path/to">
        Options None
        Order allow,deny
        Allow from all
</Directory>
当您请求http://site/page1.php,浏览器的地址栏不变,但服务器实际提供的是
/index.php
,别名为
/var/www/path/to/index.php

如果需要,可以将正则表达式
^(.*)\.php$
调整为更合适的形式。这只匹配以
.php
结尾的任何内容,包括
/blah/bleh/foo/bar/somethingsomething.php
。如果要限制目录深度,可以将正则表达式调整为
^([^/]+)\.php$
,等等