比如访问add.com
强制跳转成add.com/index.php
网站内随便点一个内容都要包含index.php
例如add.com/index.php/1.html
总体来说就是:获取路径信息->处理路径信息
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
编写服务器apache或IIS自带的rewrite文件,将URL结构导入指定文件比如:index.php。
开启rewrite:htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。启用.htaccess,需要修改apache/conf/httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
改为
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
然后写这样的rewrite:
RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭
#RewriteCond $1 !^(index.php\.php|images|robots\.txt)
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$ sharexie/test.php?action=$1&id=$2
1、将xianglc定到 index.php?c=myuser&m=itime&domain=xianglc
RewriteRule ^([a-zA-Z0-9]){6,20}/?$ index.php?c=myuser&m=itime&domain=$0 [L]
2、#RewriteRule ^/index.html$ /1.php [L]
RewriteRule ^/index-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)$ $9&a=$1&b=$2&c=$3&d=$4&e=$5&f=$6&g=$7&h=$8 [C,NC]
RewriteRule ^(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?).html(.*?)$ /1.php?$7&i=$1&j=$2&k=$3&l=$4&m=$5&n=$6 [QSA,L,NC]
其实是可以自己定义自己想要路由的,要多优美就有多优美。
如果你index.php是入口文件,且没有配置伪静态,默认就是自动加index.php
已经加了伪静态的,去掉就可以了。
使用nginx或apache的配置文件去设置,设置完后重启
网址重定向,你百度一下这方面的内容就没问题了。
1、跳转到index.php文件可以使用nginx的rewrite
server {
listen 80;
server_name add.com;
rewrite ^/(.*)$ http://add.com/index.php break;
}
https://blog.csdn.net/carefree2005/article/details/110952184
2、如果你是想在路径中插入路径index.php可以使用nginx的反向代理结合上面的重定向。
location /index.php {
client_max_body_size 200m;
proxy_pass http://x.x.x.x:8080/ ;
proxy_set_header Host $host;
proxy_set_header Remote_Addr $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
https://blog.csdn.net/carefree2005/article/details/110952184
暴力破解