我有一个htaccess文件,大约有十几个规则,在本地主机上都可以正常工作。事实上,所有这些在我的生产服务器上都运行良好,唯一的问题是,每次从本地主机迁移到生产服务器时,我都必须修改规则。确切的问题是,在本地主机(XAMPP)上,该规则只在没有文件扩展名(在我的例子中是 上面的代码在我的生产服务器上运行,但是在localhost上不能。 上面的代码在本地主机上运行,但是在我的生产服务器上不能。 生产服务器运行CentOs 6。我使用虚拟主机的域名。以下是我的虚拟主机的配置: 我的本地主机上的配置有很大的不同,我没有目录特定的规则设置,所以我很难确定这两个设置的不同之处。也没有帮助,我是相当新的mod_rewrites。.php
)的情况下工作,而在我的生产服务器上,情况正好相反。例子RewriteRule ^demopage.php/([0-9]+)/?$ /anotherpage.php?id=$1 [QSA]
RewriteRule ^demopage/([0-9]+)/?$ /anotherpage.php?id=$1 [QSA]
关于我的设置
<Directory /var/my/directory/path/my.domain.com>
Options -Indexes +Multiviews +FollowSymLinks
DirectoryIndex index.php index.html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
试着删除Multiviews选项,这个东西与文件扩展名有关。
这与mod_negociation
相关,并激活默认扩展搜索(您要求foo
和foo.html
和foo.php
进行测试)。