如标题所示,当我将其重新上传到我的服务器(Ubuntu LTS)时,我的重写规则不起作用。 .htaccess文件正在播放,但什么也没做。
mod_rewrite已加载,我已经验证了几种方法。我尝试在.htaccess文件中编写垃圾文本并得到500内部错误,因此该文件似乎在循环中。 virtualHost配置具有“allowOverride All”。
.htaccess文件由一系列重写规则组成,例如:
RewriteRule ^webshop$ index.php?page=webshop [QSA]
RewriteRule ^webshop/([0-9]+)$ index.php?page=webshop&catID=$1 [QSA]
在服务器上,我需要虚拟主机,一个公共服务器和一个测试服务器。公共服务器工作正常,所有重写都与上面类似并且有效。它是不想播放的测试虚拟主机。一台服务器,一台IP,两台FQDN。
想法?
编辑 - 这是VirtualHost配置:
<VirtualHost *:80>
ServerAdmin beta@example.com
ServerName beta.example.com
DocumentRoot /var/www/beta/www-root
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/beta/www-root>
AddDefaultCharset utf-8
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from (Two IPs omitted)
</Directory>
<Directory /var/www/temp>
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.beta.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
答案 0 :(得分:0)
问题似乎是有一个与正则表达式(的一部分)同名的文件夹。我有一个名为&#34; webshop.php&#34;的文件,由于某种原因,正则表达式^webshop$
失败(服务器似乎更喜欢实际的文件夹/文件而不是本地重写)。