Back to Question Center
0

Το θέμα mod_rewrite δεν θα λειτουργήσει όταν οι συνδέσεις περιέχουν "-" - Semalt

1 answers:

Έχω εξετάσει το mod_rewrite για το απλό PHP CMS μου για μερικές μέρες τώρα και βρήκα έναν κανόνα που έπρεπε να δουλέψει για μένα:

     RewriteRule ^ (\ w +) /? $ View_post. php; url = $ 1    

Αυτό υποτίθεται ότι λαμβάνει www. τομέα. com / παράδειγμα-post στο view_post. php σελίδα και να αναζητήσετε την ανάρτηση από ένα DB. Αυτό δεν λειτουργεί αν υπάρχουν παύλες στο όνομα - types of bi tool. Ωστόσο, αν προσπαθήσω www. τομέα. com / examplepost, θα λειτουργήσει όπως μπορώ να δω το view_posts. τη φόρτωση σελίδας php και την ορθή κατασκευή της SQL, ωστόσο δεν φορτώνεται περιεχόμενο, επειδή προφανώς δεν θα ταιριάζει με τίποτα στο DB.

Θα μπορούσα να πάω μερικούς τρόπους γύρω από αυτό, κάποιος θα ήταν να προσπαθήσει να ζητήσει την DB με δύο παύλες και χωρίς, εύκολα να αφαιρεθεί από το κείμενο με substr, ωστόσο θα ήθελα για αυτόν τον κανόνα επανεγγραφής να λειτουργήσει με παύλες, καθώς προς το παρόν. Αυτό πιθανότατα σχετίζεται με το regexp, ωστόσο είναι πέρα ​​από την κατανόησή μου.

Οποιαδήποτε βοήθεια θα εκτιμηθεί πολύ!

February 7, 2018

Θα πρέπει να συμπεριλάβετε το - (παύλα) στην αντιστοιχία κανόνα. php; url = $ 1

θα λειτουργήσει.

Προφανώς δεν λειτουργεί επειδή - δεν είναι ένας χαρακτήρας λέξης

κάνοντας έτσι σχεδόν όλες τις διαδρομές URL εκτός από την αρχική σελίδα θα κατευθυνθούν.