Answers:
.htaccess是一个隐藏文件,因此您必须将所有文件设置为在ftp中可见。
我建议您将永久链接结构恢复为默认值(?p = ID),以便确保.htaccess是问题所在。
之后,您可以简单地再次设置“月份和名称”结构,并查看其是否有效。
PS:您是否已升级到3.1?在这种情况下,我见过一些人遇到插件问题。
.htaccess
无论您如何纠正固定链接,缺失都可能导致此问题,因此请首先检查,而不是隐藏或丢失
基本上.htaccess文件应该存在,而httpd.conf应该正确。
就我而言,我在以下部分中更改了文件/etc/apache2/apache2.conf:
<Directory "/var/www/html">
行更改为:
AllowOverride None
至
AllowOverride All
然后重新启动Web服务器
systemctl restart apache2
修复这个问题很简单,如果你使用了比其他固定链接default
,例如Day and name
,Month and name
,Numeric
,Post name
或者Custom Structure
,你只需要
登录到您的管理区域:Settings > Permalinks
应该是:http://yoursite.com/wp-admin/options-permalink.php
选择Default
永久链接设置,然后保存更改
然后,你可以再次回到它以前的其他永久的选择或保持它作为default
作为哟心愿
请注意,当您将站点从一个域或位置移动到另一个站点时,可能会发生此问题。
mysite.com/wp-admin
?
如果默认行为(example.com/?p=42
)有效,则您应该:
Admin: Settings > Permalinks
,然后单击“保存”。有时它可以解决问题。如果没有:/path/to/wordpress/.htaccess
已更改,并且现在包括该行RewriteEngine On
。如果不包含该行,则是Wordpress权限问题。验证是否已加载“重写”模块:使用以下命令创建一个PHP文件:
<?php
phpinfo()
?>
在其中,在浏览器中将其打开并搜索mod_rewrite
。它应该在“已加载的模块”部分中。如果不是,请启用它-查看您的apache默认index.html
文件以获取详细信息-在Ubuntu中,您可以使用helper进行操作a2enmod
。
验证apache服务器正在查看该.htaccess
文件。开放httpd.conf
-或Ubuntu的替代产品/etc/apache2/apache2.conf
。在其中,您应该有类似
<Directory /path/to/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
完成这些更改后,请不要忘记重新启动apache服务器。 sudo service apache2 restart
如果所有这些都不起作用,那么您的.htaccess是正确的,并且永久链接技巧没有起作用,则您可能尚未启用apache2 rewite mod。
我运行了这个程序,问题就解决了:
sudo a2enmod rewrite
mod_rewrite
在phpinfo();
页面中搜索以检查是否已启用。这是在Loaded Modules
中apache2
在WordPress管理界面中执行以下操作:
进入管理员设置
单击永久链接,然后在单选按钮中选择帖子名称。
向下滚动,您将.htaccess
在此处看到类似的代码。
<IfModule mod_rewrite.c>
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
.htaccess
文件中。htaccess
文件not
可写时,规则才会显示..如果它是wordpress,则只需将其本身写入即可...
如果您可以通过FTP访问帐户:
首先,登录到您的wp-admin并转到“设置”>“固定链接”
您应该在底部看到以下内容:
“如果您的.htaccess文件是可写的,我们可以自动执行此操作,但事实并非如此,因此您应该在.htaccess文件中使用这些mod_rewrite规则。单击该字段,然后按CTRL + a来全选。”
如果是这样,请执行以下操作:
进入您的FTP客户端的首选项,并确保显示隐藏文件(取决于您的FTP客户端)-如果您不这样做,将无法找到htaccess文件
转到您的wp-admin,wp-content,wp-includes目录所在的文件夹。检查.htaccess文件。如果存在,请跳至步骤4
如果不存在,请在FTP程序中创建一个名为.htaccess的新空白文件。
将您的.htaccess文件的CHMOD更改为666(您希望如何执行此操作)
返回“永久链接”页面并编辑所需的链接结构。问题应该解决!
完成后,请确保将htaccess文件的chmod更改回644。
只是有同样的问题,它似乎可以立即解决!祝好运!
在大多数情况下,只需访问WordPress管理员中的“设置”->“永久链接”页面并单击“保存”即可解决此问题(因为已经指出了其他几个答案)。当访问此页面时,WordPress会在.htaccess
文件中重写指令,从而神奇地解决了该问题。该问题通常是在移动网站后发生的(该网站因.htaccess
遗留或需要更新设置)。
如果WordPress没有正确的权限来写入.htaccess
文件,则在保存设置时,页面顶部将显示一条通知,底部将显示进一步的说明。在这种情况下,您需要自己编辑.htaccess
文件,或者更好地解决该文件的权限。该文件位于WordPress安装的根目录下。cd
进入目录和sudo chmod 644 .htaccess
。您可能还需要检查文件是否属于正确的组,并使用进行更改chown
。询问您的托管服务提供商是否不知道该怎么做。
如果您在共享主机上,那可能就是您所能做的。如果仍然有问题,则可能需要与托管服务提供商的支持联系。否则,请确保.htaccess
已在服务器上启用文件使用,如@georgeos所建议。请注意,这httpd.conf
并不总是使用(Ubuntu表示已弃用,但Apache官方文档仍然说它通常是主要配置文件)。/etc/httpd/conf/httpd.conf
而/etc/apache2/apache2.conf
似乎是这个文件最常见的地方。通常<Directory /var/www/>
,找到公用文件夹的块,并确保将AllowOverride
伪指令设置为All
。如果将其设置为None
,.htaccess
服务器将简单地忽略您的文件。
我安装了mod_rewrite来解决此问题。以下链接提供了安装指南:-http: //www.iasptk.com/enable-apache-mod_rewrite-ubuntu-14-04-lts/
只需导航到仪表板中的“设置”->“永久链接”,然后最后单击“ 保存更改”按钮。\
如果您的WordPress安装位于子文件夹(例如https://www.example.com/subfolder)中,请在WordPress中更改此行.htaccess
RewriteRule . /index.php [L]
至
RewriteRule . /subfolder/index.php [L]
通过这样做,你告诉服务器寻找的WordPress index.php
在WordPress文件夹(例如:https://www.example.com/subfolder),而不是在公共文件夹中(例如:https://www.example.com)。
在尝试进行任何永久链接或服务器配置更改之前,请检查您的.htaccess文件。这主要是损坏的或空白的.htaccess文件问题。将htaccess文件重置为默认值
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
不久前我遇到了这个问题。我已将永久链接重置为默认值或将其保存,将主题/核心更新为(4.7.4)/插件,停用了所有插件,切换为默认主题,优化了数据库,.htaccess已为默认值,已检查文件权限,mod_rewrite处于启用状态。
到目前为止,什么都行不通,帖子,新页面,/ contact页面(旧页面除外)有效。
基本上,无效的页面/ URL是:
/breeding
/training
/training/*
/breeding/*
最终,我在根文件夹中找到了这些文件:
/breeding.php和/training.php
我将两个文件都重命名,并且上面的页面正常工作。