问题描述
我想知道如何将诸如 www.example.com/forum/index.php
之类的链接重定向到 www.example.com/论坛/
。我遇到了麻烦,尝试在Google上查找它,但没有一种解决方案适合我。我的根目录中已经安装了WordPress,而我的论坛
目录中已经安装了phpbb论坛软件。
I was wondering how to redirect a link such as www.example.com/forum/index.php
to www.example.com/forum/
. I have been having trouble, I tried looking it up on Google but none of the solutions are working for me. I have WordPress installed in my root directory, along with phpbb forum software in my forum
directory.
我的论坛
子目录.htaccess:
My forum
sub directory .htaccess:
#
# Uncomment the statement below if you want to make use of
# HTTP authentication and it does not already work.
# This could be required if you are for example using PHP via Apache CGI.
#
#<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#</IfModule>
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
这是我的根文件夹 .htaccess
:
# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
</IfModule>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
</IfModule>
</IfModule>
<FilesMatch "\.(css|js|htc|CSS|JS|HTC)$">
FileETag None
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.2.4"
</IfModule>
</FilesMatch>
<FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|SVG|SVGZ|TXT|XSD|XSL|XML)$">
FileETag None
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.2.4"
</IfModule>
</FilesMatch>
<FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip|ASF|ASX|WAX|WMV|WMX|AVI|BMP|CLASS|DIVX|DOC|DOCX|EOT|EXE|GIF|GZ|GZIP|ICO|JPG|JPEG|JPE|MDB|MID|MIDI|MOV|QT|MP3|M4A|MP4|M4V|MPEG|MPG|MPE|MPP|OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|PNG|POT|PPS|PPT|PPTX|RA|RAM|SVG|SVGZ|SWF|TAR|TIF|TIFF|TTF|TTC|WAV|WMA|WRI|XLA|XLS|XLSX|XLT|XLW|ZIP)$">
FileETag None
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.2.4"
</IfModule>
</FilesMatch>
# END W3TC Browser Cache
# BEGIN W3TC Page Cache core
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*\/)?w3tc_rewrite_test$ $1?w3tc_rewrite_test=1 [L]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=W3TC_ENC:_gzip]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_HOST} = site.com
RewriteCond %{REQUEST_URI} \/$ [OR]
RewriteCond %{REQUEST_URI} (sitemap(_index)?\.xml(\.gz)?|[a-z0-9_\-]+-sitemap([0-9]+)?\.xml(\.gz)?) [NC]
RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|\/feed\/|wp-.*\.php|index\.php) [NC,OR]
RewriteCond %{REQUEST_URI} (wp-comments-popup\.php|wp-links-opml\.php|wp-locations\.php) [NC]
RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|wordpress_\[a-f0-9\]\+|wordpress_logged_in) [NC]
RewriteCond %{HTTP_USER_AGENT} !(W3\ Total\ Cache/0\.9\.2\.4) [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" -f
RewriteRule .* "/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache core
# 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
Google网站管理员工具一直因为这两个网址而说我有重复的标题标签,我似乎无法弄清楚!
Google Webmaster Tools has been saying I have duplicate title tags because of these 2 urls, I can not seem to figure it out!
推荐答案
在 .htaccess
对于URL,基本上可以做两件事。
In .htaccess
there are basically two things you can do regarding URLs.
重写URL
您可以在内部重写URL。如果用户访问 example.com/forum /
,则可以在内部重写URL以使用 example.com/forum/index.php
。用户将在其地址栏中看到 example.com/forum
。
You can rewrite URLs internally. If the user visits example.com/forum/
you can rewrite the URL internally to use example.com/forum/index.php
. The user will see example.com/forum
in their address bar.
在中.htaccess
文件,其格式为:
RewriteRule ^forum /forum/index.php [L]
RewriteRule
表示应该重写URL。 ^ forum
与 example.com/forum / forum
部分匹配c>和 /forum/index.php
表示应将URL重写为 /forum/index.php
。最后一个 [L]
表示,如果此 RewriteRule
匹配,它将停止匹配规则。
RewriteRule
indicates that it should rewrite the URL. ^forum
matches the forum
part in example.com/forum/
and /forum/index.php
says that it should rewrite the URL to /forum/index.php
. Last [L]
means that if this RewriteRule
matches, it should stop matching rules.
重定向URL
您也可以重定向URL。这将向客户端发送标头以加载另一个页面。如果用户访问 example.com/forum/index.php
,则可以将其重写为 example.com/forum
并命令请求该请求的客户端加载该URL。用户将在其地址栏中看到 example.com/forum
。
You can redirect an URL too. This will send an header to the client to load a different page instead. If the user visits example.com/forum/index.php
, you can rewrite it to example.com/forum
and order the client that requested that to load that URL instead. The user will see example.com/forum
in their address bar.
在中.htaccess
文件,其格式为:
RewriteRule ^forum/index\.php /forum [R,L]
再次, RewriteRule
表示应该重写URL,如果它匹配 ^ forum / index\.php
(请注意转义点,因为它是一个正则表达式,我们不希望以匹配每个字符)。它将被重写为 / forum
。最后,我们有标志 [R,L]
。 R
代表重定向(默认情况下为临时重定向),而 L
再次代表如果此规则匹配,停止匹配任何其他规则。
Again, RewriteRule
tells that the URL should be rewritten, if it matches ^forum/index\.php
(notice the escaped dot, because it is a regex, we do not want it to match every character). It will be rewritten to /forum
. Last, we have the flags [R,L]
. R
stands for 'redirect' (by default a temporary redirect) and L
stands again for 'if this rule matches, stop matching any further rules.
文档
有关mod_rewrite的文档可以是在找到。
The documentation about mod_rewrite can be found here.
这篇关于如何将example.com/forum/index.php重定向到example.com/forum/的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!