如何在htaccess问题中重写URL.php



如果没有它,我需要将.htaccess中的每个文件从.php重写到一个干净的URL,但我无法使其工作。

我当前的代码如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
RewriteCond %{THE_REQUEST} !/(blog).php
RewriteCond %{THE_REQUEST} .phP
RewriteRule ^(.*).php$ /$1 [R=301,L]
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteEngine On    
RewriteCond %{HTTP_HOST} ^url.info [NC] 
RewriteRule ^(.*)$ https://www.url.info/$1 [L,R=301]
Redirect 301 /url1.php /url2.php
ErrorDocument 404 /404.php
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 6 months"
</IfModule>
# Deflate Compression by FileType
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-shockwave-flash
</IfModule>
# Deflate Compression by MimeType</span>
<IfModule mod_deflate.c>
<FilesMatch ".(js|jpg|jpeg|gif|png|css|txt|html)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

当我想访问URL1时,它会给出404。它本身和其他一切都可以工作,但当我一开始添加php部分时就不行了。我希望你能帮助我,谢谢你。

以下内容应该有效:

RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+).php [NC]
RewriteRule ^ /%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [NC,L]

第一个"重写"条件和规则组合重定向所有以"结尾的内容;。php";到相同的地址,但没有它(这是从URL中剥离.php(。第二个条件和规则组合将请求的资源重新映射回php文件(但地址仍将被剥离(。

最新更新