繁体   English   中英

htaccess将动态网址转换为静态网址

[英]htaccess make dynamic url to static url

我有一个类似的网址:

http://localhost/admin-s/index.php?m=user

但是,我想要一个这样的URL:

http://localhost/admin-s/user

我这样尝试:

RewriteRule ^([a-z0-9]+).php$ index.php?nol&m=$1 [L]
RewriteCond %{QUERY_STRING} ^m=([a-zA-Z0-9]+)$
RewriteRule ^index.php$ user%1.php [L]

怎么做?

希望这个简单的配置可以帮助您。 您可以在此处检查此配置

这会将这种模式的请求从http://localhost/admin-s/index.php?m=user重定向到http://localhost/admin-s/user

说明:

1.如果REQUEST_URI/admin-s/index.php

2.如果QUERY_STRINGm=someWords

3.重定向到/admin-s/someWords

.htaccess

RewriteEngine on
Options -MultiViews
RewriteCond %{REQUEST_URI} \/admin\-s\/index\.php
RewriteCond %{QUERY_STRING} m=([\w]+)
RewriteRule ^(.*)$ /admin-s/%1? [R=301,L]

在这里回答了问题: 如何将动态URL转换为静态URL

对于您的问题,可以尝试遵循以下规则:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^admin-s/([^-]+) /index.php?m=$1 [R=301,QSA,L]

让我们知道是否可行

您可以在root / .htaccess/admin-s/.htaccess中使用以下规则:

RewriteEngine on

#redirect /admin-s/index.php?m=user to /admin-s/user
RewriteCond %{THE_REQUEST} /admin-s/index\.php\?m=([^\s&]+) [NC]
RewriteRule ^ /admin-s/%1? [L,R]
#rewrite the new uri back to the orignal location
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?:admin-s/)?(.+)$ /admin-s/index.php?m=$1 [NC,L]

admin-s尝试以下操作,

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([\w-]+)$ index.php?m=$1 [L]

暂无
暂无

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

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