Hướng dẫn how do i remove index php from the url? - làm cách nào để xóa chỉ mục php khỏi url?

Để loại bỏ các chỉ mục trên mạng.

Nếu bạn đang chạy Apache, bạn có thể làm điều đó bằng cách tạo một chuyển hướng trong tệp .htaccess trang web của bạn. Nếu bạn không có một tệp, hãy tạo một tệp mới có tên là .htaccess, trong trang web của bạn.

Lưu cái này bên trong tệp .htaccess của bạn:


  RewriteEngine On

  # Send would-be 404 requests to Craft
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
  RewriteRule (.+) index.php?p=$1 [QSA,L]

Điều đó viết lại quy tắc về cơ bản nói, nếu một yêu cầu được đưa ra trong bản đồ đó không phải là một thư mục hoặc tệp hiện có, hãy chuyển nó sang index.php thay thế.

Với tệp đó, hãy thử truy cập một trang trên trang web của bạn (bên cạnh trang chủ của bạn), mà không cần chỉ mục. Nếu nó hoạt động, tuyệt vời! Nếu không, bạn nên kiểm tra với máy chủ của mình để xem lý do tại sao tệp .htaccess không hoạt động.

Điều đó thật tuyệt, nhưng các URL của tôi vẫn đang xuất hiện với Index index.php, # #

Bước cuối cùng là nói với Craft rằng trang web của bạn được thiết lập để xử lý các URL mà không cần chỉ số. .

Bạn có thể nói với Craft không bao gồm các chỉ mục của nhóm.

    'omitScriptNameInUrls' => true,

Với điều đó, Craft sẽ nhận lời của bạn và ngừng thực hiện kiểm tra hàng ngày.

Nhưng nghiêm túc mà nói, các URL của tôi vẫn có chỉ số.

Nếu bạn trên Apache, tệp httpd.conf của bạn có thể không được đặt cho trang web của bạn, việc vô hiệu hóa hiệu quả tất cả các thay đổi tệp .htaccess. Thay đổi nó thành AllowOverride All, khởi động lại Apache và cuối cùng bạn sẽ được đặt. Ngoài ra, hãy đảm bảo MOD_REWRITE được bật.

Theo mặc định, các nền tảng PHP như WordPress và Codeigniter expend index.php ở cuối URL trang web, không thực sự cần thiết. Dưới đây là các bước để xóa index.php khỏi url bằng cách sử dụng .htaccess trong máy chủ web Apache. Bạn có thể sử dụng các bước này để xóa index.php khỏi WordPress, Codeigniter và các trang web PHP khác.

Về cơ bản, chúng tôi sẽ chuyển hướng Index.php sang URL mà không có nó. Vì vậy, chúng tôi sẽ cần mô -đun Apache mod_rewrite.

Trước khi tiếp tục tiếp tục, vui lòng đảm bảo rằng bạn đã kích hoạt mod_rewrite trong Apache Web Server. Dưới đây là các bước để kích hoạt mod_rewrite trong Apache. Vào cuối của nó, bạn sẽ tạo một tệp .htaccess cho trang web của bạn.

1. Mở tệp .htaccess

Mở thiết bị đầu cuối và chạy các lệnh sau để mở tệp .htaccess. Chúng tôi đã sử dụng đường dẫn tệp mặc định của tệp .htaccess. Bạn có thể thay đổi nó theo yêu cầu của bạn.

$ sudo vi /var/www/html/.htaccess

2. Xóa index.php khỏi url

Thêm các dòng sau trong tệp .htaccess.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Chúng ta hãy nhìn vào từng dòng ở trên. Dòng đầu tiên cho phép mod_rewrite nếu nó chưa được bật.

Dòng thứ hai phù hợp với các URL không phải là tệp. Dòng thứ ba phù hợp với các URL không phải là thư mục. Vì vậy, chúng tôi đang tìm cách phù hợp với các URL không phải là tệp cũng không phải thư mục.

Dòng cuối cùng có nghĩa là nếu hai câu lệnh viết lại trước khi nó được khớp với URL, thì nó sẽ được chuyển hướng đến URL mà không cần index.php trong đó.

3. Khởi động lại máy chủ web Apache

Khởi động lại máy chủ Apache để áp dụng các thay đổi

$ sudo systemctl restart httpd

Bây giờ nếu bạn mở trình duyệt và truy cập http: //your_domain_or_ip/index.php, bạn sẽ được chuyển hướng đến http: // your_domain_or_ip. Thay thế your_domain_or_ip bằng tên miền hoặc địa chỉ IP của bạn. Tương tự, nếu bạn truy cập URL như http: //your_domain_or_ip/index.php/Folder1/Folder2 Bạn sẽ được chuyển hướng đến http: // your_domain_or_ip/firder1/firder2

Bài viết liên quan:

  • về tác giả

Hướng dẫn how do i remove index php from the url? - làm cách nào để xóa chỉ mục php khỏi url?

Câu trả lời ban đầu thực sự là chính xác, nhưng thiếu giải thích. Tôi muốn thêm một số giải thích và sửa đổi.

Tôi khuyên bạn nên đọc phần giới thiệu ngắn này https://httpd.apache.org/docs/2.4/rewrite/intro.html (15 phút) và tham khảo 2 trang này trong khi đọc.

https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html https://httpd.apache.org/docs/2.4/rewrite/flags.html


Đây là quy tắc cơ bản để ẩn index.php khỏi URL. Đặt cái này vào tệp root .htaccess của bạn.

    'omitScriptNameInUrls' => true,
1 phải được bật bằng PHP và điều này sẽ hoạt động cho phiên bản PHP cao hơn 5.2.6.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php/$1 [L]

Hãy nghĩ

    'omitScriptNameInUrls' => true,
2 là con đường sau máy chủ.

Ví dụ.

    'omitScriptNameInUrls' => true,
3,
    'omitScriptNameInUrls' => true,
2 là
    'omitScriptNameInUrls' => true,
5

Vì vậy, 3 dòng cuối cùng có nghĩa là, nếu đó không phải là một tệp thông thường

    'omitScriptNameInUrls' => true,
6 chứ không phải thư mục
    'omitScriptNameInUrls' => true,
7, thì hãy thực hiện
    'omitScriptNameInUrls' => true,
8.

Đối với các định dạng viết lại:

Hướng dẫn how do i remove index php from the url? - làm cách nào để xóa chỉ mục php khỏi url?

Vì vậy,

    'omitScriptNameInUrls' => true,
9 có nghĩa là, nếu 2
$ sudo vi /var/www/html/.htaccess
0 được thỏa mãn, nó
$ sudo vi /var/www/html/.htaccess
1 sẽ khớp với mọi thứ sau tên máy chủ.
$ sudo vi /var/www/html/.htaccess
2 khớp với bất kỳ ký tự đơn nào,
$ sudo vi /var/www/html/.htaccess
3 khớp với bất kỳ ký tự nào và
$ sudo vi /var/www/html/.htaccess
1 làm cho điều này trở thành một biến có thể được tham chiếu bằng
$ sudo vi /var/www/html/.htaccess
5, sau đó thay thế bằng
$ sudo vi /var/www/html/.htaccess
6. Hiệu ứng cuối cùng là thêm index.php trước đó vào toàn bộ đường dẫn URL.characters and
$ sudo vi /var/www/html/.htaccess
1 makes this a variables can be references with
$ sudo vi /var/www/html/.htaccess
5, then replace with
$ sudo vi /var/www/html/.htaccess
6. The final effect is to add a preceding index.php to the whole URL path.

Ví dụ. Đối với

$ sudo vi /var/www/html/.htaccess
8, nó sẽ sản xuất,
$ sudo vi /var/www/html/.htaccess
9 trong nội bộ.internally.

Một vấn đề quan trọng khác là điều này thực sự giải quyết câu hỏi. Trong nội bộ, (tôi đoán) nó luôn cần

$ sudo vi /var/www/html/.htaccess
9, nhưng với việc viết lại, bạn có thể truy cập trang web mà không cần index.php, Apache nói thêm điều đó cho bạn trong nội bộ.Internally, (I guess) it always need
$ sudo vi /var/www/html/.htaccess
9, but with rewriting, you could visit the site without index.php, apache adds that for you internally.


BTW, tạo thêm một tệp .htaccess không được Apache Doc khuyến nghị lắm.

Viết lại thường được cấu hình trong cài đặt cấu hình máy chủ chính (bên ngoài bất kỳ phần

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
3 nào) hoặc bên trong các container
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
4. Đây là cách dễ nhất để viết lại và được khuyến nghị

Làm cách nào để loại bỏ PHP khỏi URL?

Cách loại bỏ ...
Mở tệp HTACCESS. Mở thiết bị đầu cuối và chạy lệnh sau để mở. HTACCESS FILE. ....
Loại bỏ . Phần mở rộng PHP từ URL. ....
Khởi động lại máy chủ web Apache. Khởi động lại máy chủ Apache với lệnh sau $ sudo systemctl khởi động lại httpd ..

Tại sao URL của tôi nói chỉ số PHP?

Lý do phổ biến nhất cho chỉ số.PHP xuất hiện là cấu trúc permalink không đúng.Do đó, trước tiên hãy kiểm tra xem cấu trúc được đặt đúng.Để kiểm tra nó, điều hướng đến cài đặt -> permalinks.improper permalink structure. Therefore first check if the structure is set properly. To check it, navigate to Settings -> Permalinks.

Làm cách nào để loại bỏ PHP khỏi url wordpress?

Để loại bỏ chỉ mục.PHP từ url WordPress của bạn, đăng nhập vào bảng điều khiển WordPress của bạn, truy cập cài đặt> Nhấp vào permalinks và có thay đổi cấu trúc permalink thành tên đăng.Bây giờ hãy kiểm tra URL trang web của bạn, chỉ mục.PHP được biến mất.login to your WordPress Dashboard, go the Settings > click on permalinks, and there change the permalink structure to Post name. Now check your website URL, the index. php be gone.

Làm thế nào tôi có thể loại bỏ chỉ mục công khai PHP trong URL được tạo ra?

Tạo hoặc chỉnh sửa tệp .htaccess trong thư mục gốc của Laravel và định cấu hình bản viết lại để xóa Public Public/index.php khỏi URL.Bạn phải có Bật mod_rewrite trên máy chủ Apache của bạn. htaccess file in the Laravel root directory and configure the RewriteRule to remove “public/index. php” from the URL. You must have mod_rewrite enable on your Apache server.