我正在尝试允许 Clean-Urls,启用 MultiViews。
我拥有的所有页面都在根文件夹本身中。
我正在努力实现以下目标:
(current-status -> what I am trying to achieve)
1. foo.com/services.php -> foo.com/services
2. foo.com/services == foo.com/services/
3. foo.com/services.php/second-level/ == foo.com/services/second-level
services
不是文件夹,我 炸开$_SERVER['PATH_INFO']
得到二级路径数据。
我已经实现了第一个,但是当我启用MultiViews
、使用.htaccess
文件并编写重写时它失败了。
Options +Indexes +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
(这显然会失败,因为它会将请求更改为 services/second-level.php)。我知道我可以在 中编写多个重写.htaccess
,并有条件地重定向。
但奇怪的事实是,在实时环境(共享主机)上,它正在工作,根文件夹中没有任何.htaccess
文件。由于它是共享主机,我无法读取配置文件。
apache.conf
关于我应该更改(或*.conf
)什么配置以实现上述目标的任何想法?
如果重要的话,我正在使用Apache/2.2.22
,并且这个问题在更新后开始发生。