繁体   English   中英

.htaccess重写子目录不起作用

[英].htaccess rewrite with sub directories not working

我想重写我的网址:

http://mysite.com/index.php?node=home&photoID=10

至:

http://mysite.com/home/10

目前,仅为

http://mysite.com/home

我用

RewriteRule ^([^/]*)$ index.php/?node=$1 [L]

但是当我尝试使用时

RewriteRule ^([^/]*)/([^/]*)$ index.php/?node=$1&id=$2 [L]

它似乎没有正确加载我的页面,页面没有样式或任何东西。

(另外,我的.htaccess文件的顶部有:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

如果我只是去mysite.com/home它显示404找不到。 如果不总是有子页面,我该怎么做?

首先要让你的.htaccess规则如下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/([^/]+)/?$ index.php/?node=$1&id=$2 [L,QSA]

RewriteRule ^([^/]+)/?$ index.php/?node=$1 [L,QSA]

然后确保在<head></head>之间的页面顶部添加此行:

<base href="http://mysite.com/">

您需要添加<base>标记,以便让相对URL知道URI基址的位置。 由于您已将/home的URI路径更改为/home/10 ,因此相对链接的基础将变为/home 您需要将其添加到页面的标题中:

<base href="/">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM