将url斜杠转换为参数

时间:2016-08-23 11:53:51

标签: php .htaccess

我必须像这样转换网址

www.domain.tld/long/param

到这个

www.domain.tld/long/long.php?l=param

我在相同的服务器上安装了CMS,我不想弄乱它的htaccess,所以这应该仅适用于那个特定的目录(长)。

试过这个,但它不会工作: Rewriting a URL to a PHP parameter from inside a subdirectory

2 个答案:

答案 0 :(得分:1)

long/.htaccess内,您可以使用此规则:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ long.php?l=$1 [L,QSA]

答案 1 :(得分:0)

将此.htaccess文件放在长目录中。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.html$ long.php?l=%{REQUEST_URI} [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.pdf$ long.php?l=%{REQUEST_URI} [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.cvs$ long.php?l=%{REQUEST_URI} [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.xml$ long.php?l=%{REQUEST_URI} [L,QSA]
</IfModule>
## EXPIRES CACHING ##
<FilesMatch "\.(jpg|jpeg|png|gif|swf|woff)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>