一位客户要我用WordPress建立一个网站。我不是很擅长WordPress,所以解决方案可能已经在这里,但我已经阅读了十几个SO问题并且尚未找到答案,所以我想我和我#39;发布我自己的。
这是我的.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^podcast/([^/]+)$ /podcast?slug=$1 [QSA,L] #I added this
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
使用我这样的文件,它会将我重定向到我的404页面。即使网址正确(/podcast/word
),浏览器控制台也会说它是404。
然后我假设我添加了一个&#34; R = 301&#34;旗帜,它会解决这个问题。但如果我这样做:
RewriteRule ^podcast/([^/]+)$ /podcast?slug=$1 [R=301,QSA,L]
然后我的浏览器就转到/podcast?slug=word
。
我不确定这是由我的.htaccess引起的,还是由WordPress 404文件引起的。如果有人想看到它,我的404.php文件是:
<?php get_header(); ?>
<section class="white">
<div class="wrapper internal">
<!--generic error message-->
</div>
</section>
<?php get_footer(); ?>
我的.htaccess文件在使用Wolf CMS时运行正常,但在WordPress中运行不正常。因为我还在学习WordPress,所以非常感谢任何帮助。
修改
我使用slug引用RSS源中的播客。我希望将http://example.com/podcast/?slug=example-podcast
转换为http://example.com/podcast/example-podcast
,但每当我这样做时,我都会获得404.
答案 0 :(得分:0)
尝试使用此代码替换.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
答案 1 :(得分:0)
示例:如果我将一个名为'a'的文件夹中的wordpress作为子目录,那么我将像这样编辑我的.htaccess
# BEGIN WordPress
<ifmodule mod_rewrite.c="">
RewriteEngine On
RewriteBase /a/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /a/index.php [L]
</ifmodule>
# END WordPress
答案 2 :(得分:0)
您也可以将永久链接设置为帖子名称。如果您的网址是由帖子名称而不是php类型的网址定义,这将解决此问题。