需要 Apache RewriteRule 帮助

需要 Apache RewriteRule 帮助

应用程序使用 urlhttp://www.mydomain.com/item/3193.html从 mysql 数据库中选择并显示适当的记录。

只需提一下,应用程序是用 php 编写的,托管在 apache 网络服务器上。

事实上应该是http://www.mydomain.com/item.html/3193.html,但在 .htaccess 中我有 RewriteRule 可以帮助我将其视为http://www.mydomain.com/item/3193.html

但是在新的服务器上,RewriteRule 由于某种原因不起作用。正如我所说,它在 .htaccess 中定义如下:

RewriteEngine On
RewriteBase /
#some conditions here
RewriteRule ^item/(.*) item.html/$1
#more conditions here

因此,它在旧服务器上运行。它(看起来?)在新服务器上不起作用......

因此,首先,我将与托管服务提供商核实服务器是否允许重写规则。

此外,如果是的话(我猜是的),我可以更改此 RewriteRule 的语法以获得我需要的能力吗?

提前非常感谢!

答案1

更有可能的是,您没有权限设置 .htaccess 文件。尝试使用以下方法执行一些基本操作,例如目录列表(没有 index{htm,html,php} 或您可能拥有的任何默认页面)Options Indexes

如果您无法查看目录内容,AllowOverride则设置为 None(或限制性设置),这就是您的问题。它必须至少设置为,AllowOverride FileInfo并且Options FollowSymLinks也是必需的。如果您确实需要它,请与您的提供商联系 (*)。

如果您可以查看目录列表,则说明您没有所需的选项,请再次与您的提供商联系。

(*) 在临时或开发服务器中,RewriteRules 可以放在 .htaccess 中,这样您就可以快速完成工作,而无需多次重新启动 apache。如果可以,请确保在生产时将它们移至虚拟主机配置。

相关内容