2015-04-21 16 views
5

Tôi cần xóa ?id=&title= khỏi url này bằng tệp .htaccess.Làm cách nào để xóa id và tiêu đề khỏi url này?

URL bây giờ - http://www.XXXX.com/video.php?id=XX&title=XXX-XXX-XXX

Những gì tôi cần - http://www.XXXX.com/video.php/XX/XXX-XXX-XXX

Tôi đã đã gỡ bỏ .php từ tất cả các liên kết.

+1

Và bạn đã thử gì? –

+0

sử dụng phương pháp đăng bài, Hãy suy nghĩ bạn đang thử điều này bằng cách lấy –

+0

'RewriteRule^video/([0-9] +)/([0-9a-zA-Z _-] +) $ video.php? Id = $ 1 & title = $ 2 [NC, L] 'điều này không hoạt động .. – Nilohn

Trả lời

5

Tiếp theo đang htaccess sẽ làm công việc của bạn

//First Parameer 
    RewriteEngine On 
    RewriteRule ^([a-zA-Z0-9_-]+)$ video.php?id=$1 
    RewriteRule ^([a-zA-Z0-9_-]+)/$ video.php?id=$1 

    //Second Parameter 
    RewriteEngine On 
    RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ video.php?id=$1&title=$2 
    RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/$ video.php?id=$1&title=$2 
+1

Vâng, đó là tốt hơn nhiều so với phiên bản của tôi. Tốt đẹp. –

+0

Tôi không thấy lý do tại sao điều này sẽ hoạt động. OP muốn xóa chuỗi truy vấn. –

1

thêm bên dưới mã để tập .htaccess của bạn.

RewriteEngine on 
RewriteBase/
RewriteCond %{QUERY_STRING} ^id=(.*)\&title=(.*) 
RewriteRule (.*) /$1/%1/%2? [NC,L,R=301] 

ra là

http://www.XXXX.com/video.php/XX/XXX-XXX-XXX 

mã này đang làm việc cho tôi tôi hy vọng nó đang làm việc cho bạn.

+0

quy tắc của bạn sẽ khớp với bất kỳ url nào có thông số id và tiêu đề, không chỉ '/ video.php' –

+0

@MarioA Này, tôi chỉnh sửa mã của tôi bây giờ nó hoạt động với bất kỳ tệp nào không chỉ video.php Cảm ơn –

1

Để truy cập vào chuỗi truy vấn bạn cần phải sử dụng một tuyên bố RewriteCond như thế này:

RewriteEngine on 
RewriteCond %{QUERY_STRING} id=([^&]+)&title=([^&]+) 
RewriteRule ^video.php$ video.php/%1/%2 [L,R=301] 

Ví dụ trên hoạt động khi id và tên thông số theo thứ tự chính xác của các ví dụ của bạn. Nếu có thể có các tham số khác trong chuỗi truy vấn hoặc nếu các tham số có thể theo thứ tự bất kỳ, bạn sẽ cần điều chỉnh các quy tắc.

+0

tại sao phải không? 'RewriteRule^video.php $' chỉ khớp với '/ video.php' không có gì khác. –

+0

Hey đàn ông, đó là lỗi của tôi xin lỗi. Cảm ơn cho điểm nó ra. –

1

Cảm ơn bạn rất nhiều vì tất cả các câu trả lời này. Subodh Ghulaxe đã đăng câu trả lời hay.

Nhưng đây là mã làm việc cho tôi.

# To externally redirect /dir/foo.php?id=123&title=456 to /dir/123/456 
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\?id=([^&]+)&title=([^&\s]+) [NC] 
RewriteRule^%1/%2/%3? [R,L] 

# To externally redirect /dir/foo.php?id=123 to /dir/123 
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\?id=([^&\s]+)\s [NC] 
RewriteRule^%1/%2? [R,L] 

# To internally forward /dir/foo/12 to /dir/foo.php?id=12 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/([^/]+)(/[^/]+)?/?$ $1.php?id=$2 [L,QSA] 

RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ video.php?id=$1&title=$2 
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/$ video.php?id=$1&title=$2 

# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\s [NC] 
RewriteRule^%1 [R,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^(.*?)/?$ $1.php [L] 

Sumurai8 xong mã này trong here (hoàn thành đang .htaccess). Tôi hy vọng mã này sẽ giúp đỡ cho một ai đó. Đối với css, js, hình ảnh chắc chắn để sử dụng đường dẫn tuyệt đối.

Các vấn đề liên quan