为什么固定链接可以与/index.php/%postname%一起使用,而不能只与%postname%一起使用?

时间:2011-07-12 作者:emmahiggy

我对Wordpress permalinks有问题。我把permalinks改成了pretty permalinks,但我现在只得到404个页面。奇怪的是当我使用/索引时。php/%postname%页面链接工作正常,但我需要去掉索引。php部分。

我读到了关于修改httpd的内容。conf文件,但在任何地方都找不到该文件。据我所知,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
还有其他想法吗?

ThanksEmma公司

13 个回复
SO网友:Drew Reis

我的密码都是正确的.htaccess 文件,但它最终被Ubuntu默认值完全覆盖/etc/apache2/apache2.conf 文件。已更改的条目//var/www 从…起AllowOverride NoneAllowOverride All, 重新启动Apache,现在一切正常。

SO网友:iulia

我猜是这样的mod_rewrite 未启用。根据您使用的服务器,启用mod_rewrite.

然后,如果您在Linux上,请手动编辑/etc/apache2/sites-enabled/000-default 和更改AllowOverride 对于发件人NoneAll (或站点目录所在的位置)。

Here, 在第3点和;4应该是Windows的解决方案。

SO网友:ktiwari

从昨天开始,我一直在研究类似的问题,最终找到了解决方案。

1) 确保您的。htaccess拥有666权限

2) 启用mod\\u重写:

sudo a2enmod重写

3) 重新启动apache:

sudo systemctl重启apache2

4) 允许对/etc/apache2/apache2上的公共目录进行全部覆盖。形态

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
5)重启apache:

sudo systemctl重启apache2

6) 转到Wordpress dashboard并更改永久链接设置(如果您在postname上,请更改为普通,反之亦然)。查看要检查的网站。

7) 再次转到dashboard并将permalink设置更改为所需的设置。

8) 恢复。htaccess设置为644

这对我有用。

SO网友:Mike Cooter

你有没有用过名字。co.uk作为您的主机?

我只是和你有同样的问题,在谷歌上搜索了几个小时后,我发现他们使用了Zeus 服务器-not Apache - 还有它does not support the Mod_ReWrite 作用这似乎解释了令人困惑的症状。(我没有.htaccess文件,但每当我更改permalink首选项时,Wordpress都不会报告任何错误。)

他们为宙斯提供了一个解决方案,详情如下:

http://www.names.co.uk/support/hosting/linux_hosting/1119-wordpress_rewrite_script.html

我意识到这是在你最初的帖子发布几个月后,你现在可能已经解决了这个问题,但对于任何将来发现这个问题的人来说,最好检查你的主机是否使用Zeus或其他非Apache服务器

Update: Please see the code I posted here on a similar question

SO网友:Rohit Sharma

我与这个问题斗争了一段时间,今天我解决了这个问题。我发现我的mod_rewrite 一直没有启用。我找到了这方面的信息link 非常有用。它解释了如何检查mod_rewrite 已启用,如果未启用,则如何启用。我希望这些信息对任何刚刚接触WP并正在努力设置永久链接的人都有用。

SO网友:derek

尝试将htaccess设置为777,然后进入并将permalink设置更新为所需的设置,如果可以,请返回并将其更改回644

SO网友:Jeremy Jared

添加内容后,我发现一篇文章建议删除。htaccess文件,然后转到设置/永久链接并删除索引。php。文章说,WorPress会给出一个错误,建议您创建。htaccess文件。我决定试试,但什么也没做。我发现我的永久链接仍在使用已删除的。htaccess文件。这让我起初很困惑。我打开了FTP客户端并导航到我的文件。我注意到有一个。htaccess文件,在我删除它之后。我不知道这是不是WordPress,我的托管帐户,或者是什么创建的,但我知道这是新的。这以前从未发生过。如果其他方法都失败,您可以尝试此方法。

我无法在您的问题中重新创建问题,因此我不能百分之百确定它是否适用于您。不过值得一试。

你好Jeremy Jared

SO网友:Jeremy Jared

尝试更换。htaccess代码:

# -------------------------------------------------------------------------
# Rewrite Engine options
# -------------------------------------------------------------------------

RewriteEngine On
RewriteCompatibility2 On
RepeatLimit 200
RewriteBase
RewriteRule ^/index.php$ / [NC,P,R=301]
RewriteCond %{REQUEST_URI} !/wp-admin
RewriteRule ^/(.*)/$ /index.php/$1 [NC]

# Redirect \'www.yourblogsite.com/anything/anything/index.php\'
# to \'www.yourblogsite.com/anything/anything/\'

RewriteRule ^/(.*)/index.php$ /$1/ [NC,P,R=301]

# -------------------------------------------------------------------------
# END REWRITES
# -------------------------------------------------------------------------
我仍然有一个客户端的登录凭据,我必须为其修复此问题。这是我用来对付他的。这是一个IIS服务器,我不确定这是否重要,但你可以试试。祝你好运,JJ

SO网友:ewroman

我认为您的主机使用IIS(Internet信息服务)。IIS使用“URL Rewrite“不是”mod_rewrite“,请看Codex.

“Pretty”永久链接通常需要mod\\u重写,而IIS(Windows服务器上常见)不支持mod\\u重写。(如果您在Windows上使用的是Apache 2.0.54,那么mod\\u rewrite可以工作,前提是它在Apache\\conf\\httpd.conf中启用。)

SO网友:ansh

我知道现在回复已经太迟了,但如果你还在找这个;这里有一个快速的方法:

Solved- How To Remove Index.php From WordPress URL On IIS7?

SO网友:July

我在Mac OSX上遇到了这个问题,下面的内容非常有用。似乎默认情况下,Mac电脑并非如此。默认情况下,htaccess ready和Apache将忽略该文件,直到修改某些文件(在下面的链接中指定):

http://wordpress.org/support/topic/getting-pretty-permalinks-working-on-a-mac-105-server

http://clagnut.com/blog/350/

希望有帮助!

SO网友:User123456

这是针对apache服务器的:首先检查虚拟主机如果您使用的是默认主机,请检查wordpress根目录是否有

  <Directory ROOT_DIR_FOR_WORDPRESS>
            php_admin_flag engine on
            AllowOverride All
            Order allow,deny
            allow from all
            RewriteEngine On
            RewriteOptions Inherit
            Require all granted
    </Directory>
检查您的。wordpress根目录中的htaccess文件具有读、写(666)权限,并且包含

# 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
启用mod rewrite(sudo a2enmod rewrite-适用于linux用户)

现在更新permalink自定义结构:/%postname%/

保存并检查是否有任何错误现在应该可以工作了

大多数时候,问题是,你的。htaccess被虚拟主机规则覆盖

SO网友:Kazbek Kadalashvili

您需要执行sudo a2enmod rewrite以启用模块重写

结束

相关推荐

curl problem or permalinks

我刚刚配置了我的VPS,我使用的是Centos,一切都很好,但如果我将永久链接设置为自定义结构,然后接受主页,没有帖子出现,它会显示404页,我想这是因为我没有启用curl,但我不知道我的php在哪里。我的centos中的ini文件?好的,我的卷曲被启用了,我检查过了phpinfo(); 这里是URLhttp://74.117.158.182/info.php但如果我在我的wordpress中设置了永久链接,那么接受主页,所有都会给我404页,你可以在这个URL上查看http://mbas.co.in如果