簡體   English   中英

如何使用.htaccess重命名URL的一部分?

[英]How to rename part of a url with .htaccess?

我目前對Apache的經驗很少,並且對我的.htaccess文件有困難。 我的問題是:如何正確重命名下面列出的這些文件? 根據http://www.htaccesscheck.com ,我相信我的語法是正確的,但是訪問這些頁面時,A:由於重定向循環而無法加載該頁面,或者B:該頁面將不會加載,但將重定向到錯誤的頁面。 這是此目錄的當前.htaccess文件:

RewriteEngine On
RewriteBase /photos/

RewriteRule ^(.*)-(.*)$ archives.php?month=$1&year=$2 [L]

RewriteRule ^(.*)$ catpost.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ viewpost.php?id=$1 [QSA,L]

任何幫助深表感謝。

請嘗試以下代碼:

RewriteEngine on
RewriteBase /photos/

RewriteRule ^([0-9]{1,2})-([0-9]{4})$ archives.php?month=$1&year=$2 [L]

RewriteRule ^([0-9]+)$ catpost.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ viewpost.php?id=$1 [QSA,L]

該規則將檢查是否:

  • 像yourdomain / 11-1111這樣的請求,然后返回archives.php
  • 像yourdomain / 111這樣的請求,然后返回catpost.php(您可以輸入任何數字)
  • 否則將返回viewpost

您當前的.htaccess文件有一些錯誤,因為第二條規則是第一條規則的結果。

順便說一句,您可以使用http://htaccess.madewithlove.be/逐步檢查重寫規則中的內容。

一定要寫一個有效的模式
嘗試這個

RewriteEngine On
RewriteBase /photos/

RewriteRule ^(.*?)-(.*?)$ archives.php?month=$1&year=$2 [L]

RewriteRule ^(.*?)$ catpost.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*?)$ viewpost.php?id=$1 [QSA,L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM