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