Remove index.php from URL

时间:2017-03-25 作者:geek2000

我已经在子目录/www/html/wordpress/(而不是/www/html/)中安装了wordpress,这里给出了解决方案How to get rid of index.php 无法在此服务器上工作。

解决方案建议在中添加以下内容。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
并在apache配置中更改为“AllowOverride ALL”。

该解决方案适用于我的另一台服务器,wordpress安装在/www/html/上,而不是这台。你知道这是为什么吗?我怎样才能修复它?(显然,我应该在.htaccess中更改上述代码,但我不知道如何更改)

2 个回复
SO网友:Por

登录Wordpress仪表板并单击设置>永久链接。在“常用设置”下,选择“自定义结构”,然后在文本字段中输入/%postname%/

单击保存更改

第二步是创建。htaccess文件,然后上载到Wordpress站点的根位置。

这个htaccess文件将包含以下规则:

RewriteEngine on
RewriteBase / 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ /index.php/$1 [NC,L]

#for wordpress with a directory of blogs
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^wordpress/(.*)$ wordpress/index.php/$1 [NC,L]

SO网友:lin web

默认值取决于您的设置。htaccess条目看起来与您的代码一模一样(见下文)。如果在WordPress Dashboard>settings>Permalinks中激活除“default”之外的其他设置后,您仍然无法摆脱index.php 表示默认WordPress条目未生效。

您确定您的。apache启动时加载htaccess文件<你的Apache<virtualhost> WordPress安装在哪个目录中?

Wordpress default .htaccess entry after activating permalinks

# 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
如果所有这些都失败了,您可以尝试在中添加此代码。htaccess文件。这并不是一个真正的解决方案,但可以将其添加到您的中。htaccess文件它可能会引发一个错误,指出问题的根源。检查错误日志文件。

# Force requests for index.php files to drop the index.php file filename
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\\ /([^/]*/)*index\\.(php)(\\?[^\\ ]*)?\\ HTTP/
RewriteRule ^(([^/]*/)*)index\\.(php)$ /$1 [R=301,L] 

相关推荐

Pretty permalinks (again)

我正试图在我的WordPress站点中启用永久链接。但每次我尝试更改为除默认链接外的任何永久链接选项时,帖子的链接都会转到404。如果我把它改回来,它就正常工作了。我正在Ubuntu服务器14.04上使用WP 4.2.4和Apache 2.4.7。我做过的事情:我有mod_rewrite 在Apache中启用</我有选择+FollowSymLinks 和AllowOverride All 和RewriteEngine On 在Apache服务器的配置文件中</我已给予书面许可.htaccess