Προς το περιεχόμενο

Friendly Url (.htaccess)


Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω ένα scriptaki και θέλω να κάνω τα URL περισσότερο φιλικά προς τις μηχανές αναζήτησης. Στο .htaccess βρήκα το παρακάτω , δεν ξέρω αν αρκεί να αλλάξω κάτι εδώ για να το πετύχω
 

## RewriteRule ^(.+)/(.+)$ software_detail.php?slug=$1&mcat=$2 [NC,L]

# RewriteBase /filev1.1/
# RewriteRule ^([^/]*)/download_([^/]*)$ software_detail.php?mcat=$1&slug=$2 [L]

<IfModule mod_rewrite.c>

RewriteEngine On

#custom page urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+).html/?$ info.php?page=$1 [L]

#main page urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?mcat=$1 [L]

#searching
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/search/([^/]+)/?$ search.php?mcat=$1&q=$2 [L]
RewriteRule ^([^/]+)/search/([^/]+)/([^/]+)/?$ search.php?mcat=$1&q=$2&p=$3 [L]

#categories urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ categories.php?mcat=$1&cat=$2 [L]

#pagination urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/page-([^/]+)/?$ categories.php?mcat=$1&cat=$2&pn=$3 [L]

#download page urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/download_([^/]+)/([^/]+)/?$ download.php?mcat=$1&slug=$2&download=$3 [L]

#browse urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ software_detail.php?mcat=$1&catid=$2&slug=$3 [L]

#History urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/download/history/([^/]+)/?$ history.php?mcat=$1&soft=$2 [L]

ErrorDocument 404 http://localhost/filev1.1.1/404.php/
</IfModule>


 
Αυτό που θέλω να κάνω είναι π.χ
 
το #browse urls να δίνει αποτέλεσμα http://siteurl/category/postname 

Άλλαξα το 

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ software_detail.php?mcat=$1&catid=$2&slug=$3 [L]

με 

RewriteRule ^([^/]*)/([^/]*)\.html$ /test/categories.php?mcat=$1&cat=$2 [L]

αλλά δίνει 404.
 

Οποιαδήποτε βοήθεια ευπρόσδεκτη.
 
Δημοσ.

πραγματικα δε καταλαβα τι θες να κανεις.

 

πρωτα απ'ολα το site ειναι σε καποιο cms ή ειναι κατι custom?

 

τα υπαρχοντα urls τωρα ποια μορφη εχουν?

Δημοσ.

Είναι σε php. 

Τώρα το URL του άρθρου εμφανίζεται έτσι
 

http://domain.com/software_detail.php?mcat=windows&catid=drivers&slug=driver_booster_

Και θέλω να το κάνω έτσι
 

http://domain.com/windows/drivers/driver_booster_.html

 

Δημοσ.

οταν λες οτι ειναι σε php, ειναι κατι custom cms ή static php?

 

παντως η λυση που ψαχνεις μεσω του htaccess δεν ειναι λυση ακομα κι'αν το πετυχεις. ειναι απλα μια πατεντα.

Δημοσ.

Αν εννοείς στο RewriteRule δεν το έβαλα εγώ.  Αρχικά είχα ανεβάσει στο scriptaki σε subfolder της μορφής http://mydomain.com/script

 

Βρήκα ένα rewrite tool μήπως καταφέρω αλλάζοντας το .htaccess  να το κάνω να εμφανίζει τα url όπως θέλω , το εργαλείο που προανέφερα μου εμφάνιζε ένα rewritten URL  που δεν περιείχε το /script , έτσι το πρόσθεσα εγώ σαν prefix.

 

Σήμερα ανέβασα πάλι το scriptaki αλλά όχι σε subfolder , κατευθείαν στο domain , έκανα την ίδια διαδικασία και αντικατέστησα την τελευταία σειρά του
 

#browse urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ software_detail.php?mcat=$1&catid=$2&slug=$3 [L]

με αυτό

RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /software_detail.php?mcat=$1&catid=$2&slug=$3 [L]

Τώρα δοκιμάζοντας το  http://mydomain.com/windows/browsers/firefox.html  λειτουργεί κανονικά με την διαφορά ότι αν κάνω browse και πατήσω να ανοίξει το ίδιο άρθρο θα το εμφανίσει πάλι σαν
http://mydomain.com/software_detail.php?mcat=windows&catid=browsers&slug=firefox


Με κούρασε και δεν βλέπω να βγάζω άκρη , δεν είναι και της ειδικότητας μου τα παραπάνω ,θα το αφήσω έτσι προσωρινά.

 

 
Δημοσ.

ειναι ο κλασικος τροπος αλλα μπορεις να χρησιμοποιησεις καποιο router πχ απο symfony framework για πιο ευκολια.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...