2
我遇到一些与我的.htaccess文件存在问题,存储在我的网站的根级别。.htaccess将不会正确重写
我要重写以下
- mysite.com执行mysite.com/index.php?lang=en但重写URL到mysite.com/en/
- mysite.com/en (没有结尾的斜线)不与上述相同的
- mysite.com/en/blog/page执行mysite.com/blog/page?lang=en
概括地说,该语言添加到URL,打开index.php与.com,.com/en或.com/en /,a第二剥离文件扩展名
下面是引用完整的文件:
RewriteEngine on
# Redirect to domain without www.
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* http://%1%{REQUEST_URI} [R=301,L]
# Same for HTTPS:
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* https://%1%{REQUEST_URI} [R=301,L]
# Stop hotlinking.
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} ^https?://([^/]+)/ [NC]
RewriteCond %1#%{HTTP_HOST} !^(.+)#\1$
RewriteRule \.(jpg|jpeg|png|gif|svg)$ - [NC,F,L]
# Prevent directory listings
Options All -Indexes
# Request language from URL
# empty url -> redirect to en/
RewriteCond %{QUERY_STRING} !lang=(en|de)
RewriteRule ^$ en/ [R=301,L]
# now all urls have en/ de/ -> parse them
RewriteRule ^(en|de)/(.*)$ $2?lang=$1&%{query_STRING} [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
完全公开,它已经全部采取了从各种谷歌的结果,我很欣赏它,也许可以做得更好。
因为它的立场,mysite.com给我
请求的URL /home/towrafvk/public_html/en/.php此服务器上找到。
mysite.com/en给我
请求的URL /en.php此服务器上找到。
mysite.com/en/并按预期
我知道这个问题是mysite.com/en/blog/page都工作在第三到最后一个和第二个到最后重写规则。我怎样才能解决这个问题?