我必须像这样转换网址
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
答案 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>