我刚刚将WordPress网站从Windows迁移到Linux服务器。除了将永久链接设置为/%postname%/的帖子外,一切似乎都有效。我认为这是mod_overwrite
问题。
我已将httpconf文件从AllowOverride None
更改为AllowOverride All
然后重置服务器以确保它生效。
我的.htaccess看起来像这样:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
我在专用服务器上运行CentOS5上的Apache 2.2。
要添加:除了包含这些自定义永久链接的帖子外,所有页面都正常工作。
我为.htaccess
设置了666的权限答案 0 :(得分:4)
同样的事也发生在我身上。原来,.htaccess
对我来说不是问题。问题出在服务器配置文件中。
适用于AWS EC2服务器:
第1步:编辑配置文件
sudo nano /etc/httpd/conf/httpd.conf
编辑此文件并更改
<Directory /var/www/html/wordpress/>
AllowOverride None
</Directory>
到
<Directory /var/www/html/wordpress/>
AllowOverride All
</Directory>
请注意,/var/www/html/wordpress/
是托管WordPress项目的根文件夹的路径。
第2步:重启服务器
在对.conf
文件进行更改后,请不要忘记重新启动服务器。
sudo service httpd restart
对于Ubuntu服务器:
第1步:编辑配置文件
sudo gedit /etc/apache2/apache2.conf
编辑此文件并更改
<Directory /var/www/html/wordpress/>
AllowOverride None
</Directory>
到
<Directory /var/www/html/wordpress/>
AllowOverride All
</Directory>
请注意,/var/www/html/wordpress/
是托管WordPress项目的根文件夹的路径。
第2步:重启服务器
在对.conf
文件进行更改后,请不要忘记重新启动服务器。
sudo service apache2 restart
答案 1 :(得分:0)
保持AllowOverride无。
删除.htaccess文件以及任何一组混乱规则的痕迹,只需在虚拟主机中添加:
FallbackResource /index.php
既不需要mod_rewrite,也不需要.htaccess。
通过添加per-dir配置,您基本上会使您的生活变得复杂。为了什么,一切都会变得更难?通过更改文件进行动态更改? .htaccess适用于需要修改目录配置的非管理员用户。
由于您是管理员,因此请在Virtualhost中配置所有可能的内容。
向每个人提供对文件的rw权限绝对不是要走的路。 httpd不需要对任何东西进行写访问。