2015-11-16 105 views
2

在我的.htaccess文件,我正在使用的代码:的.htaccess - 添加尾随斜线和内部重定向

RewriteEngine on 
RewriteRule ^learn/(.*?)/(.*?)/ /learn.php?lang=$1&topic=$2 
RewriteRule ^videos/(.*?)/(.*?)/ /video.php?lang=$1&topic=$2 

工作正常。但它适用于http://domain.com/learn/v1http://domain.com/learn/v1/(请注意斜杠更改)。 我想将非斜杠版本重定向到斜杠版本,以维持上面的内部重定向。我试图添加其他RewriteRule来做到这一点,但它给了我404。

任何帮助,将不胜感激。

回答

1

尝试:

RewriteEngine on 

## Adding a trailing slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=302] 

# internal rewrites 
RewriteRule ^learn/(.*)/(.*)/$ learn.php?lang=$1&topic=$2 [L,QSA] 
RewriteRule ^videos/(.*)/(.*)/$ video.php?lang=$1&topic=$2 [L,QSA] 
+0

你能解释一下'重写规则[^ /] $%{REQUEST_URI}/[L,R = 302]'这是在干什么?我对此不是很清楚。 – mehulmpt

+0

我在这条规则之上写了一个简短的评论。它向不是文件的URL添加尾部斜线。 – anubhava

+0

我需要知道该正则表达式选择和处理什么,因为这不是我的完整htaccess文件。 – mehulmpt