我有这个网站,以前页面的 URL 类似于:
请注意,这些 URL 中的任何一个都没有扩展名,即使它们是 .php 文件。这是一个位于域根目录中的 Wordpress 站点。wordpress-site 现在已被移动到一个文件夹中,但我想设置从所有以前的 URL 到新 URL 的重定向(出于 SEO 原因)。
到目前为止,我找到了一个远非完美的临时解决方案。我所做的是将它放在 .htaccess 文件中(以删除 PHP 扩展):
# Turn on the rewrite engine
RewriteEngine on
# If the request doesn't end in .php (Case insensitive) continue processing rules
RewriteCond %{REQUEST_URI} !\.php$ [NC]
# If the request doesn't end in a slash continue processing the rules
RewriteCond %{REQUEST_URI} [^/]$
# Rewrite the request with a .php extension. L means this is the 'Last' rule
RewriteRule ^(.*)$ $1.php [L]
然后我创建了与以前的 URL 相同的不同文件(使用 .php 扩展名,然后由于我的 .htaccess 文件而被删除)。在每个文件的顶部,我插入了一个
<?php header('Location: THE_NEW_URL'); ?>
它有效,但它像贝蒂一样丑陋!最近,由于这个临时的、愚蠢的解决我的问题,我遇到了一个错误。我试图在文件夹的根目录中设置一个新页面(称为 test.php)。这个 test.php 文件有一个样式表,它链接到以下方式(非常标准,我假设):
<link href="css/style.css" rel="stylesheet" type="text/css" />
但是 test.php 文件找不到这个样式表(是的,我确定我上传正确)。如果我转到源文件并单击它,那么我可以看到它试图访问
css/style.css.php
您不必是爱因斯坦就知道,这是我在狼群中提出的 .htaccess 文件。但是我该怎么办?有没有办法制作我的 .htaccess 文件,所以我可以按照以下方式做一些事情:
Redirect from SPECIFIC_URL to A_NEW_SPECIFIC_URL
它不会搞砸我域上的所有 URL。我喜欢在我的文件上有扩展名。我只需要修复这 15 个现在已被移动的旧 URL(没有扩展名)。
我对 .htaccess-files 很烂,在任何地方都找不到任何教程。糟透了!我不知道如何变得更好。我一直在实施我不理解的解决方案!?!