URL重写不适用于WordPress
我想将网站中一个文件夹(URL重写不适用于WordPress,wordpress,.htaccess,mod-rewrite,url-rewriting,Wordpress,.htaccess,Mod Rewrite,Url Rewriting,我想将网站中一个文件夹(cartoon)中的URL更改为友好的SEO URL。 此文件夹(卡通)包含一个与WordPress无关的PHP脚本 发件人: example.com/cartoon/index.php?v=TitleEpisode 致: 我在这里阅读了所有相关的问题,但我没有从中受益 我的主域名(example.com)上有WordPress 我在.htaccess文件中找到了此代码: DirectoryIndex index.html index.php index.htm par
cartoon
)中的URL更改为友好的SEO URL。
此文件夹(卡通
)包含一个与WordPress无关的PHP脚本
发件人:
example.com/cartoon/index.php?v=TitleEpisode
致:
我在这里阅读了所有相关的问题,但我没有从中受益
我的主域名(example.com
)上有WordPress
我在.htaccess
文件中找到了此代码:
DirectoryIndex index.html index.php index.htm parking-page.html
# 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
DirectoryIndex.html index.php index.htm parking-page.html
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
我该怎么办?好的,根据编辑,您似乎希望WordPress不要重写该段代码,而是忽略它 您可以通过编辑
.htaccess
来排除文件夹。确保文件夹位于站点的根目录中,如中所示,与wp admin
、wp content
和wp includes
文件夹相同
然后,打开.htaccess
,添加重写规则以忽略该文件夹:
DirectoryIndex index.html index.php index.htm parking-page.html
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# Add this condition with the folder you want to ignore (cartoon in your example)
RewriteCond %{REQUEST_URI} !^/(cartoon|cartoon/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
现在,在wp管理中,转到设置->永久链接。将永久链接设置为Post Name
然后单击保存更改。如果您的站点有权限,它将自动保存新的.htaccess
,或者它将给您.htaccess
的新内容进行复制和粘贴
现在,您应该能够查看帖子或页面,并且应该显示SEO友好链接。您是如何实现(或打算实现)example.com/cartoon/TitleEpisode的路由的
如果这完全在WordPress之外,那么我希望您在/cartoon
子目录中有一个额外的.htaccess
文件(因为这可能是一个物理子目录)?仅此一项就足以覆盖父.htaccess
文件中的WordPress mod_rewrite指令,因为默认情况下不会继承mod_rewrite指令
例如,只需在子目录中启用重写引擎
,就足以覆盖WP指令
在/cartoon/.htaccess
中:
RewriteEngine On
然后,为了将格式为/cartoon/TitleEpisode
的URL路由到/cartoon/index.php?v=TitleEpisode
,您需要如下内容:
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ([^/]+) index.php?v=$1 [L]
(有点类似于父.htaccess
文件中的WP指令。)
我会避免在父
.htaccess
文件中的#BEGIN
和#END WordPress
标记之间进行编辑,因为这些标记可能会被将来的WP更新覆盖
相反,您应该在WP指令之前实现一个异常。例如:
RewriteRule ^cartoon - [L]
但是,如上所述,您最好在子目录中创建一个额外的.htaccess
文件,并避免接触WordPress安装。完成了。
我在.htaccess中的第一行之后输入这个
# BEGIN for Cartoon Folder
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?cartoon/(.+)$ /cartoon/?v=$1 [L,QSA]
# END for Cartoon Folder
多谢各位
RewriteRule ^cartoon - [L]
# BEGIN for Cartoon Folder
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?cartoon/(.+)$ /cartoon/?v=$1 [L,QSA]
# END for Cartoon Folder