我正在尝试删除网址的最后一个斜杠。
我把它放在我的htaccess文件中:
RewriteRule ^(.+[^/])/$ http://%{HTTP_HOST}/$1 [R=301,L]
它适用于托管在根目录中的文件(或从数据库生成的页面),但它不适用于托管在子目录中的文件。
例如,我想这样:
http://mywebsite.com/dir1/dir2/dir3/index.php
进入那个:
http://mywebsite.com/dir1/dir2/dir3
但它是这样的:
http://mywebsite.com/[homeserver]/[server]/www/dir1/dir2/dir3
我的htaccess文件出了什么问题?
编辑:这是整个htaccess文件
SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^(.+[^/])/$ http://%{HTTP_HOST}/$1 [R=301,L]
### Remove www
RewriteCond %{HTTP_HOST} !^mywebsite\.com$ [NC]
RewriteRule ^(.*)$ http://mywebsite.com/$1 [R=301,L]
### Get the URL in pathinfo mode
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php/$1
### Redirect index.php to the root
RewriteRule ^index\.php$ http://mywebsite.com/ [R=301,L]
答案 0 :(得分:0)
尝试在RewriteEngine
开启后添加以下规则,并提供完整的.htaccess
以供进一步分析。
RewriteBase /
答案 1 :(得分:0)
有这样的话:
SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
### Remove www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L,NE]
## Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [NE,R=301,L]
### Redirect index.php from anywhere
# remove index.php
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteCond %{REQUEST_URI} ^(.*/)index\.php$ [NC]
RewriteRule ^ %1 [L,R=301,NE]
### Get the URL in pathinfo mode
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [L]
确保在测试此更改之前清除浏览器缓存。
答案 2 :(得分:0)
您可以使用<button class="tiles" style="padding: 0px; background: url(http://www.incendia.net/hexquilts/image112.png); background-repeat: no-repeat; color: #FFF" v-if="selectedCategory==''">This is test</button>
文件中的以下代码删除网址末尾的斜杠。
.htacccess
我已经使用过这个并且工作正常。