我在让 wordpress 在我的目录 .htaccess 文件中生成的标准 mod_rewrite 正常工作时遇到了一些麻烦。我使用的服务器默认设置了虚拟主机,而我对配置它们不太熟悉。我已经到了头疼的地步,所以任何帮助我都感激不尽。
因此假设我的域名是:
我有我的 wordpress
因此对于我的漂亮链接,domain.com/wordpress 中的 .htaccess 文件内容如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
我的虚拟主机配置文件位于etc/apache2/sites-available/domain.com.conf:
<VirtualHost *:80>
ServerName app01
ServerAlias domain.com www.domain.com
DocumentRoot /var/www/vhosts/application/
<Directory /var/www/vhosts/application>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Location>
LogLevel info
ErrorLog /var/log/apache2/domain.com-error.log
CustomLog /var/log/apache2/domain.com-access.log combined
RewriteEngine On
RewriteLog /var/log/apache2/domain.com-rewrite.log
RewriteLogLevel 0
</VirtualHost>
所以当它起作用时,
保存为测试页的页面可以通过以下方式访问:
http://domain.com/wordpress/testpage
我已经为此奋斗了一段时间,所以非常感谢您的帮助!
干杯!
答案1
您的 中缺少一行.htaccess
。
从WordPress 提供的标准默认 .htaccess,我想你会发现你的问题消失了。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress