【发布时间】:2015-07-10 08:21:17
【问题描述】:
我接管了以前的站点/域,并使用 Wordpress 建立了一个新站点。 WP 安装会将 URL 重写为静态 URL,正如您所期望的那样。
同时我想保留以前的页面,因为它们有传入的链接。我对 301 将它们添加到“新”页面不感兴趣。
旧的 URL 结构是 /index.php?id=123,我怀疑这会导致 WP .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
我尝试添加以下内容:
RewriteRule ^([0-9]+).html index.php?id=$1 [R,L]
不起作用。只需重定向到site.com/?id=123 并显示首页。
我应该补充一点,我计划将这些新页面添加为 123.html、321.html 等格式的常规静态 HTML 文件。
如何使用 .htaccess 使其与 WP 安装以及 WP 放入 .htaccess 文件的内容一起工作?
澄清一下:
我想让我的 123.html 静态 HTML 页面为 index.php?id=123。当您访问index.php?id=123 时,它应该会显示123.html,但会在地址栏中显示index.php?id=123。如果你访问123.html,它应该是301到index.php?id=123。
【问题讨论】:
-
如果您要添加实际的静态 HTML 页面,它们应该可以正常工作,不是吗?规则基本上说明 如果是 index.php,则将其传递给未修改的,然后 如果它既不是文件也不是目录,则将其传递给 index.php ...没有任何影响一个名为 123.html 的实际文件
-
谢谢,但我认为你误会了。我想保留动态 URL。我希望 123.html 文件在浏览器 URL 字段中读取 index.php?id=123。
-
所以您想有效地将
/index.php?id=123指向/123.html?您可能会遇到问题 - 仅重写匹配路径,而不是查询字符串,因此您需要使用 RewriteCond,请参阅:stackoverflow.com/questions/13073253/… -
是的,我想让我的
123.html静态 HTML 页面成为index.php?id=123。当您访问index.php?id=123时,它应该会显示123.html,但会在地址栏中显示index.php?id=123。如果您访问123.html,它应该是 301 到index.php?id=123。我查看了您的 URL,但我不知道如何使其适应我的情况。不介意请指教。谢谢 -
你不想 301 重定向它......这需要一个实际的答案,所以,一分钟。
标签: php wordpress .htaccess mod-rewrite redirect