总之,我们目前的 htaccess 文件存在问题。301 重定向将通过新描述的 URL,但此外,新 URL 后跟一个?和旧网址。我们怎样才能摆脱 ? 和以前的 URL,因此它们不会显示为结尾。
我们在网上找到的有关此问题的示例似乎都不起作用。任何人都可以提供一些建议吗?我们可以使用 RewriteRule 来阻止这种情况发生吗?
这是htaccess文件的摘要
# begin redirects
# There are redirects of a number of old pages. Here's a sample of them.
redirect 301 /index.html http://www.petersommer.com/
redirect 301 /escorted-archaeological-tours/turkey/western-lycia-cruise-july/ http://www.petersommer.com/escorted-archaeological-tours/
RewriteRule ^gallery/main.php$ http://www.petersommer.com/gallery/ [R=301,L]
RewriteRule ^pdf/how_to_book.pdf$ http://www.petersommer.com/pdf/how-to-book-holiday.pdf [R=301,L]
# end redirects
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymLinks
DirectoryIndex index.php
RewriteEngine On
RewriteCond $1 !^(images|system|themes|pdf|favicon\.ico|robots\.txt|index\.php) [NC]
RewriteRule ^\.htaccess$ - [F]
RewriteRule ^favicon\.ico - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
</IfModule>
DirectoryIndex index.php
不幸的是,我不确定什么不起作用或需要做些什么来修复它。我认为它必须是重写规则中的某些内容,或者我们需要添加一些重写规则来修复它。
不幸的是,所有重定向都添加了一个?和旧 URL 到新重定向 URL 的末尾。例如:
to的重定向 301
通过 to/tours2006.html
而
不仅仅是/escorted-archaeological-tours/
/escorted-archaeological-tours/?/tours2006.html
/escorted-archaeological-tours/
所有人都遵循相同的模式 - 不幸的是。
如果您能看到重写规则中的任何故障,或者能确定我们需要添加的内容,我将不胜感激。