1

我有一个默认设置为指向 www 的 WordPress 网站。一切都很完美,但是我有几个部分是自定义编码的,可以转到本地服务、住宿等的“个人资料”页面。这在开发中可以正常工作,但是当您通过 www.example.com 访问链接时在实时服务器上/services/example-here/ 它重定向到 example.com/wp-content/themes/theme-here/custom/services.php?slug=example-here

我的虚拟主机告诉我是 WordPRess 导致了这个问题,但是一切都说 www.example.com/ (siteurl 等)

这是htaccess文件中的代码:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

RewriteRule ^.*services/(.*)/$ /wp-content/themes/theme-here/custom/services.php?slug=$1 [QSA,L]
RewriteRule ^.*accommodation/(.*)/$ /wp-content/themes/theme-here/custom/accommodation.php?slug=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

我检查了所有设置的任何想法,这可能是 apache conf 内部的主机问题与 mod re-write 相关吗?我还可以补充一点,代码可以在没有添加 www 的情况下完美运行,但我的客户需要 www。

4

1 回答 1

0
  1. www在此 .htaccess 之上添加一个强制规则,就在下面RewriteBase /一行:

    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]
    
  2. 确保在你permalink的 WP 设置中你有博客地址www

于 2013-10-28T09:22:32.697 回答