Я хочу изменить свой URL-адрес для дружественной поисковой системы. Я использую xampp 3.2.1 в Windows 10 с 64-разрядными Мои URL-адреса выглядят следующим образом:
http://smc.edu.pk/app/site/?p=12&m=c&u=Swat_Medical_College-_The_Project_of_Swat_Medical_Complex
И я хочу сделать так:
http://smc.edu.pk/app/site/12/c/Swat_Medical_College-_The_Project_of_Swat_Medical_Complex.html
я протестировал со следующим кодом с.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/app/site/(\d+)/([a-z-]+)/(.+)\.html$ /?p=$1&m=$2&u=$3 [NC,L]
но он возвращает следующую ошибку, когда я использую второй URL, упомянутый выше:
Object not found!
The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
If you think this is a server error, please contact the webmaster.
Error 404
smc.edu.pk
Apache/2.4.12 (Win32) OpenSSL/1.0.1l PHP/5.6.8
Я думаю, что это должно быть так (не проверено):
RewriteRule ^/app/site/(\d+)/([a-z-]+)/(.+)\.html$ /app/site/?p=$1&m=$2&u=$3 [NC,L]
Изменение: должно быть так (проверено и работает):
RewriteRule ^app/site/(\d+)/([a-z-]+)/(.+)\.html$ /app/site/?p=$1&m=$2&u=$3 [NC,L]
Да, я нашел решение:
RewriteEngine On
RewriteBase /app/site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)\.html$ /app/site/?p=$1&m=$2&u=$3 [NC,L]
Я изменил RewriteRule на:
RewriteRule ^([^/]+)/([^/]+)/([^/]+)\.html$ /app/site/?p=$1&m=$2&u=$3 [NC,L]
А также добавьте RewriteBase/app/site/на вторую строку. Теперь его работа отлично...